统计在线人数...

PHP做WAP的总结

[ 来源:转载 | 作者:佚名 | 时间:2006-5-29 下午 12:45:51 | 浏览:统计中... ]

Hello World

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
"http://www.wapforum.org/DTD/wml_1.1.xml"> 
<wml> 
<card id="card1" title="Title">
<P>
<!--Write your card implementation here.-->
Hello World!!
</P>
</card>
</wml>

可以用opera来查看和校验你的代码,通过校验一般用手机访问就没问题了

下面是一个应用例子
wap_list.html

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
"http://www.wapforum.org/DTD/wml_1.1.xml"> 
<wml> 

<card title="{typename}"> 
<p align="center">
<img src=http://www.wapdes.com/"logo.gif" alt="img" />
<br/>
</p>
 <p align="center"> 
 {typename}({total})
 <br/><br/>
 </p> 

<p>
<!-- BEGIN list -->
 <a href="show.php?id={id}">{name}</a> ({hit})
 <br/> 
<!-- END list -->
 </p>

<p>
{pagebar}
 </p>

<p align="center">
<br/> <br/>
<a href="index.php">返回首页</a>
<br/> <br/>
{time}
<br/> 
@2006 xjtusky.com 
 </p>
</card> 
</wml> 

对应的list.php

<?php

// --------------------------------------------------------------------------
// File name : list.php
// Description : 列表
// Requirement : PHP4 (http://www.php.net)
//
// Copyright(C), Langyufeng, 2005, All Rights Reserved.
//
// Author: Langyufeng (langyufeng@hotmail.com) 
//
// --------------------------------------------------------------------------
define(''ROOT_PATH'', ''../'');
require_once(ROOT_PATH . ''Includes/Global.php'');

header(''Content-Type: text/vnd.wap.wml''); 
echo ''<?xml version="1.0" encoding="GB2312"?>'';//这东西不能放到 php 外面 

$id = $_GET[''id''];
if($id == ''''){
 echo "分类ID不存在";
 exit;
 }

// 分页
$page = $_GET[''page''];

 if (!empty($page)){
 $start_limit = ($page - 1) * $Config[''pagePer''];
 }else
 {
 $start_limit = 0;
 $page = 1;
 }

$SQL = "SELECT `id` , `name` , `hit` FROM " . GAME_TABLE . " WHERE `typeid` =$id ";

$Result = $DB -> query($SQL);
$total = $DB -> _GetNumRows($Result);

$SQL .= " ORDER BY id DESC LIMIT $start_limit, $Config[pagePer]";

$Result = $DB -> query($SQL);
while($Row = $DB -> queryArray($Result)){
 $list[] = array(
     ''id'' => $Row[''id''],
 ''name'' => $Row[''name''],
     ''hit'' => $Row[''hit'']
 );
 }

// 分页
$cont = ceil($total / $Config[''pagePer'']);
if($cont > 1 && $num % $Config[''pagePer''] == 0)
 $pagebar = paginationtxt (floor($cont), $page, ''list.php?id='' . $id . ''&page'');
 elseif($cont > 1)
 $pagebar = paginationtxt (floor($cont) + 1, $page, ''list.php?id='' . $id . ''&page'');

$typename = typename($id);

$time = date("H:i:s"); 

//$qc = "?";
 $page = new SmartTemplate("wap_list.html");

 //$page -> assign(''sitename'', $Config[''sitename'']);
 $page -> assign(''typename'', $typename);
 $page -> assign(''pagebar'', $pagebar);
 $page -> assign(''total'', $total);
 $page -> assign(''list'', $list);
 $page -> assign(''time'', $time);
 $result = $page -> result();
 //$page -> output();
 echo $result;
?>

分页函数

function paginationtxt ($count,$page,$url){ 
 
 if($page>1) 
 { 
 $re="\n<a href=\"$url=1\">首页</a> <a href=\"$url=".($page-1)."\">上一页</a>"; 
 } 
 if($page<$count) 
 { 
 $re.="\n<a href=\"$url=".($page+1)."\">下一页</a> <a href=\"$url=$count\">尾页</a> "; 
 } 
 return $re; 
}

这个是放在下载目录下的,具体的自己看了
.htaccess 
AddType text/vnd.sun.j2me.app-descriptor .jad 
AddType application/java-archive .jar 
AddType application/vnd.symbian.install .sis

有一个地方必须注意:链接中不能这么用?id=**,而应该这么用xx.php?id=**
呵呵,第一次搞这个玩意,出了不少错,感谢phpe的wsjakey指点

以下摘自:http://www0.ccidnet.com/school/web//2001/05/25/70_4286.html

WML程序的结构形式及组成:

1)语法。WML是一种标记语言,延续了XML的语法规则。

2)文件声明。所有的WML程序必须在文件的开头处声明XML文件类型,包括XML的版本,WML的文档类型、所用规范等。

3)标签。在WML语言中需要使用标签(Tag),使用形式与HTML和XML等标记语言中的形式是完全一致的。

4)元素。WML的元素(Element)用于描述卡片组(Deck)的标记信息即结构信息。一个元素通常有一个首标签、内容、其它元素及一个尾标签组成,具有下述两种结构之一:

<首标签>内容</尾标签>

<标签/>

元素包含的内容中还可以有元素,这些元素也是有首标签、相应内容、其它元素及尾标签组成。不包含内容的元素成为空元素。它为一个单独的标签。或者说,单独的标签也是一种元素。

5)属性。WML与XML一样,其标签可以包含很多属性。属性用于给标签提供必要的附加信息,且属性内容通常在起始标签内使用。不过,属性内容不会被浏览器显示,它至作为参数为标签提供必要的信息。

指明属性值的时候,需要把该值用引号扩起来,可以是单引号或者双引号,引号通常成对嵌套使用。属性名称必须小写。例如:<card id="card 1" ontimer="#card2" title="Toolkit Demo">

而且,单引号的属性中还可以包含双引号的属性。实体字符也可以作为属性值。实体字符是指诸如&、<、>、''、"的特殊字符,在WML程序中显示着类字符需要特殊处理,后面我们介绍具体方法。

6)注释。WML程序中也可以加入注释。注释内容用于给开发人员顺利阅读源代码提供方便,它不会被浏览器显示出来。注释内容在标签中用感叹号(!)引出,并用于<!--注释内容-->的形式。例如:<!-- Write your card implementation here.-->。需要说明的是,XML程序中不支持注释的嵌套。

7)文档结构。WML文档是由“卡片(Card)”和“卡片组(Deck)”构成的,一个Deck是一个或多个Card的集合。当客户端发出请求之后,WML即从网络上把Deck发送到客户浏览器,这是用户就可以浏览Deck内包含的所有Card,而不必从网上单独下载每一个Card,程序中的第一个Card是缺省得可见的Card。

注意:Deck是一副纸牌的意思,这里是指一叠卡片,所以我们在这里称之为它为“卡片组”。另外,Card指的是WAP手机屏幕大小的网页,尽管有时一个Card可能需要多屏才能显示完,但我们也可以把它翻译成“页面”,不过这样与HTML中的页面容易混合。因此我们在这里称之为卡片。

WML字符使用基本规则
WML是一种比较严格的语言,字符使用必须遵守相应的规则,这些基本规则主要包括以下几个方面:

1)大小写敏感。在WML中,无论是标签元素还是属性内容都是大小写敏感的,这一点继承了XML的严格特性,任何大小写错

[1] [2]  下一页

共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)