WML,Apache,和 PHP 的介绍


Posted in PHP onOctober 09, 2006

在公司的网站中, 我发现需要一个可以无线接收我的电子邮件,股市资讯等. 不想要付钱给人来得到我要的资讯, 我决定了开发一个无线网站.这样的资讯在网际网路上是没问题的,但是它被分散得难以收集。我需要可以执行 php ,存取资料库,并且我需要 PHP 为我做另外的功能。这篇文章含盖了wml 的基础, 如何建立你的 apache Server 和 php 。这些基础可让你建立环境并且自己学习往後的应用.
 

需 求
你要对 Apache Web Server, Php 和 html 有点经验. 对系统的要求来说,我是用 apache 1.3.9, php3, 和 Red Hat Linux 6.0 来示范. 我还没碰到在 windows 上跑 Apache, 和 PHP3 或 PHP4 上的任何问题.

在这篇文章,我将指导你接触的领域: wml 的介绍,在 Apache 上设定无线 appications ,并且建立你的第一个 WML/PHP 网页.大部份的资讯可从网际网路上收集.

WML 简 介
WML 代表无线的标注语言. WAP 电话或类似的设备被用来以 WML 写成的网页。WML 基于它类似於 XML 的句法和 scrictness 。使用过了 html 的任何人将不有问题学习 WML 。许多标签和属性是一样的,况且标签不多. WML 允许程式开发者开发动态的内容, 尽管为这篇文章我们将以PHP作为动态的语言.

WML 基 础
在 WML 你能使用许多子页 ( 叫 "cards'' ) 在一个 WML 页中 (叫 " deck") .每个 WML card 的作用像在网页中被显示的内容.下列将是我们 .wml 页的例子 。在我的 Server 上,我在 ~ /wireless/home.wml 储存了这个档案

  <wml>
   <card id='home'> <p> 我的第一个测试页 </p>
   </card>
   </wml>

不同于 HTML ,如果你不colse 标签, 例如 <wml> </wml>,则你的程式码将不正确. 此例子会在任何无线的设备上产生一简单的测试信息“我的第一个测试页”。

设 定 Apache
好, 现在有趣的部分.为了 apache 能 catch 住无线设备到访你的Server, 你需要建立你的 httpd.conf ( 我的档案位於 /etc/httpd/conf/) 档案, 我用 PHP3 因此所有的变化会被记录。在你开始以前,你可以备份你的 httpd.conf 档案,以防万一:)

步骤 1 :第一, 我们需要 AddType 功能增加一新的 MIME 类型。你需要到你定义 php 的 Script 中。看起来像下面一样:

<IfModule mod_php3.c>
AddType application/x-httpd-php3 .php3 .php .phtml

AddType application/x-httpd-php3-source .phps

</IfModule>

要改为:

 

<IfModule mod_php3.c>
AddType application/x-httpd-php3 .php3 .php .phtml .wml

AddType application/x-httpd-php3-source .phps
</IfModule>

这会用 PHP compiler 在所有的 .wml 页.

步骤 2 :去除Mark(Uncomment)apache Load Module 和 Add Module

变更:

#LoadModule rewrite_module modules/mod_rewrite.so

#AddModule mod_rewrite.c
 

成:

LoadModule rewrite_module modules/mod_rewrite.so

AddModule mod_rewrite.c

步骤 3 : 用 apache mod_rewrite module (只适用 1.2+版以上 ). 用这个,你可以即时的 rewite requested URL(当条件符合时). 需要把这片断码放在网页的底部.

 

RewriteEngine On

# Catch most WAP browsers

RewriteCond %{HTTP_ACCEPT} text/vnd\.wap\.wml [OR]

# WinWAP, WAPjag

RewriteCond %{HTTP_USER_AGENT} wap [OR]

#Nokia emulators (sdk)

RewriteCond %{HTTP_USER_AGENT} 7110

# Rewrite to where your wireless page is located

RewriteRule ^[\./](.*)$ /home/mydirectory/wireless/home.wml [L]

现在要重新启动 apache server.

 

产生你第一个无线 WML/PHP 网页
Ok, 既然我们万事俱备, 让我们建立第一个网页。为了能正常运作,你需传送正确的 header 资讯.
<?php

# Send the header information<br>
header("Content-type: text/vnd.wap.wml");

?>

# put in the wml code
<wml>

<card id='home'>

<p>

My first test page

<p>
</card>
</wml>

你刚完成了你的第一个“简单”的无线网页。现在, 让我们试著更努力做一些较难的东西吧。  

你需要检查你 WAP 兼容的网站设备。我使用 Phone.com 软件开发工具包, 它包含 UP.Simulator , 可以检查我的无线网页。选择不同的电话并且看他们的无线网页通过不同的设备时看起来的长像。

更多的资讯在:

http://updev.phone.com
http://www.wapforum.org
http://www.wap.com
http://www.waplinks.com

PHP 相关文章推荐
PHP程序员编程注意事项
Apr 10 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php email邮箱正则
Oct 08 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
php抽奖小程序的实现代码
Jun 18 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
9个比较实用的php代码片段
Mar 15 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
php文件后缀不强制为.php的实操方法
Sep 18 PHP
BBS(php &amp; mysql)完整版(四)
Oct 09 #PHP
BBS(php &amp; mysql)完整版(一)
Oct 09 #PHP
建立动态的WML站点(二)
Oct 09 #PHP
建立动态的WML站点(一)
Oct 09 #PHP
建立动态的WML站点(三)
Oct 09 #PHP
Session的工作方式
Oct 09 #PHP
用Flash图形化数据(一)
Oct 09 #PHP
You might like
php adodb分页实现代码
2009/03/19 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
php目录操作实例代码
2014/02/21 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
js实现无缝轮播图
2020/03/09 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python 实现倒排索引的方法
2018/12/25 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
keras 多任务多loss实例
2020/06/22 Python
python dict如何定义
2020/09/02 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
2015年安全月活动总结
2015/03/26 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书