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 5.0对象模型深度探索之绑定
Sep 05 PHP
PHP概述.
Oct 09 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 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实现的中文分词类完整实例
2017/02/06 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
js实现日历的简单算法
2017/01/24 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
vue结合element-ui使用示例
2019/01/24 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python中除法使用的注意事项
2014/08/21 Python
给Python初学者的一些编程技巧
2015/04/03 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
Python识别验证码的实现示例
2020/09/30 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
销售工作人员的自我评价分享
2013/11/10 职场文书
药学专业个人自我评价
2013/11/11 职场文书
安全宣传标语
2014/06/10 职场文书
股东授权委托书范文
2014/09/13 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
普宁寺导游词
2015/02/04 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书