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="./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的严格特性,任何大小写错误都可能导致访问错误。
一般来说,WML的所有标签,属性,规定和枚举及它们的可接受值必须小写,Card的名字和变量可大写和小写,但它是区分大小写的。包括参数的名字和参数的数值都是大小写敏感的,例如variable1、Variable1和vaRiable1都是不同的参数。 2)空格。对于连续的空字符,程序运行时只需要一个空格。属性名、符号(=)和值之间不能有空格。
3)标签。标签内属性的值必须使用双引号(")或单引号(')括起来。对于不成对出现的标签,必须在大于号(>)前加上顺斜杠(/),比如换行标签必须写成<br/>才正确。
4)不显示的内容。在WML中,不显示的字符主要包括换行符、回车符、空格和水平制表符,它们的8位十六进制内码分别为10、13、32及9。
程序执行时,WML将忽视所有的多于一个以上的不显示字符,即WML会把一个或多个连续的换行、回车、水平制表符及空格转换成一个空个。
5)保留字符。这是WML的一些特殊字符,如小于号(<)、大于号(>)、单引号“'”、双引号“"”、和号(&)。
6)显示汉字。如果希望WML程序执行时能够显示汉字,则只需要程序开头使用encoding指定汉字字符集即可。例如:<?xml version="1.0" encoding="gb2312">。
注意:指定汉字字符集的形式和方法可能因为开发工具或WAP手机的不同而不同。