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类的使用 实例代码讲解
Dec 28 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
简单实用的网站PHP缓存类实例
Jul 18 PHP
php中动态修改ini配置
Oct 14 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP身份证校验码计算方法
Aug 10 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python在文本开头插入一行的实例
2018/05/02 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Python中过滤字符串列表的方法
2020/12/22 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
消防安全责任书
2014/04/14 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP