PHP编程在WAP开发中的应用
我们可以使用PHP来编写WAP程序,比如开发动态的WML页面,不过条件是需要将输出的标签或语句限制在WAP微型浏览器可接受的范围之内。而且,PHP还可以在一个HTML(及HDML)文件中编写出既适合于HTML(及HDML),也适合于WML的内容。PHP的源代码对于WAP客户端来说是不可见的,所以我们可以针对HTML浏览器输出HTML页面,而针对WAP浏览器输出HDML页面或WML页面。
11.3.1 基本规则
以WML为例,使用PHP编写WML程序的基本规则如下:
(1) 使用“<?”和“?>”来包含PHP编写的WML程序行,格式为:
<?
……(程序行);
?>
(2) 程序行语句均以分号( ; )结尾,这是与ASP编写WML程序不同的地方。
(3) 使用PHP的header关键字来声明WML的文件类型,基本格式为:
header("Content-type: text/vnd.wap.wml");
上述格式是专为WAP浏览器识别而采取的书写格式。如果开发中用户想使用普通的浏览器,如IE浏览器来测试程序效果,则可在该语句的前面加上双斜线(//),格式为:
// header("Content-type: text/vnd.wap.wml");
这样,基于PC的浏览器将忽略程序中无法理解的WML标签,这时当前的程序实际上成为了HTML页面。当想在WAP设备或者模拟器上测试的时候,只需要去掉“//”,当前页面就会自动变成WML页面。
(4) 其他WML标签和语句行一律使用PHP的echo关键字来声明,每个WML行的后面加上换行符“\n”(根据需要,也可加多个)。其基本格式为:
echo("……(WML标签和语句行)\n");
例如,下面的语句就是PHP编写WML语句行的典型例子:
echo("<?xml version=\"1.0\"?>\n");
而且,echo语句中的“WML标签和语句行”可以连写,以节省程序代码行。例如,下面的一行语句就连写了WML的3行标签语句:
echo ("<wml> <card> <p>");
(5) 声明脚本语言。这是对PHP编程的继承,向编译器声明当前程序采用的脚本语言为PHP,格式为:
<script language="PHP">
不过这一句可以省略,因为编译器能够自动识别PHP的脚本程序。
(6) 文件最后保存时采用的扩展名为“.php”或“.php3”,而不是“.wml”等扩展名。
根据上述规则,我们可以用PHP编写出WML页面的文件头,并让程序在WAP浏览器中显示“Hello, World!”,代码如下:
<?
header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www. wapforum.org/DTD/wml_1.1.xml\">\n\n");
?>
<?
echo ("<wml> <card> <p>\n");
echo ("Hello, World!\n");
echo ("</p> </card> </wml>\n");
?>