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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
discuz Passport 通行证 整合笔记
Jun 30 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
php中对2个数组相加的函数
Jun 24 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php动态绑定变量的用法
Jun 16 PHP
php组合排序简单实现方法
Oct 15 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 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后门URL的防范
2013/11/12 PHP
PHP生成随机密码类分享
2014/06/25 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python处理cookie详解
2014/02/07 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
django项目中新增app的2种实现方法
2020/04/01 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
中药专业毕业自荐书范文
2014/02/08 职场文书
秋季运动会广播稿
2014/02/22 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
Go 内联优化让程序员爱不释手
2022/06/21 Golang