下面讲解链接(URL,统一资源定位器)的结构:
http://wap.hu60.cn/wap/0wap/read.php?bid=xhtml&cid=tool&pid=ym&url=http%3a%2f%2fg.cn%2fm这是一个绝对链接。它以http:开头,表示使用的是http协议。//wap.hu60.cn表示服务器是wap.hu60.cn,没有:55502这样的端口号,表示端口取默认值(即:80)
之后的/wap/0wap/read.php是资源在服务器上存放的路径(网站根目录下wap目录下0wap子目录内的文件read.php)。?之后的是提交给服务器的的查询字符串,它的改变(比如增减字符)一般并不影响访问的有效性。但不正确的查询字符串可能导致网页上不显示你想要的内容。
查询字符串是一些 名称=值 对,中间用&连接。名称=值对的顺序不限,如a=d&c=m等效于c=m&a=d
查询字符串当中,除了英文字母,-减号与_下划线之外,其他的都被编码成%xx (x的范围是0~9a~f,即两位十六进制数,表示一个字节)的形式,如%2f代表/,编码中的大小写等价。
『相对链接』
与绝对链接不同,相对链接不以http:开头。在不同的网页中,相同的相对链接地址将会指向不同的地方。相对链接总是“基于目前已知的绝对链接”的,在浏览器中直接输入相对链接是无效的。
/wap/0wap/a.php
以/开头的相对链接表示从网站根目录起的位置,如这里是指向根目录下wap文件夹下0wap子文件夹里的a.php文件
../../ad/5.gif
../表示上层目录,因此这里是指向当前目录的上层的上层目录里的ad目里的5.gif这个文件
b.php?a=c
指向当前目录下的b.php文件,等效于./b.php?a=c(./表示当前目录)
down/3.zip
当前目录里down目录下的3.zip文件
hu60/wap/
指向一个目录:hu60目录下的wap目录,其实是指向里面的首页文件(如index.php)。
『特别注意』
为了方便多域名共同访问,站内链接不要以http:开头。为了能把程序放在任何目录下,内链(站内链接)如果不是必须也最好不要用到/或../。建议直接以文件/目录名开头,不要有任何冗余(如read.php?cid=ad)。
『站内链接专用标签』
[ read=bid,cid,pid]文字[ /read]
大家都知道bid,cid,pid各代表什么吧。除了cid,其他都可以留空(将取默认值)
留空的正确方法是:[ read=,bbs,]论坛[ /read](这相当于[ url=read.php?bid=&cid=bbs&pid=]论坛[ /url])
留空之处要保留逗号
『表单元素』
虎绿林最新的UBB方案中,表单元素有两类:XHTML表单和WML兼容提交按钮。WML兼容提交按钮是为了与WAP1.0版完全兼容而设计的,而且是可选的。如果你嫌麻烦,可以不做WML兼容提交按钮。(在虎绿林旧版wap/data中,我们使用了一个不成熟的表单按钮自动转换技术,结果是超过一个按钮的表单在WAP1.0都无法提交。在新版wap/0wap/page,我们放弃了这一技术)
注意新旧两个目录的UBB并非是完全兼容的。
[form=提交方式,提交地址]
……
[/form]
<!--定义一个form表单,提交方式有post、get和file。如果表单用于文件上传,必须用file。-->
以下元素都要放在[form…][/form]标签对之间:
[input=名称]默认值[/input]
<!--定义一个普通输入框。当表单用get方法提交时,在目标页面的php代码中用 $_GET['名称'] 可以得到输入的内容。以post或file方式提交的话就用 $_POST['名称'] 接收。$_REQUEST['名称'] 可以接收用任何方法提交过来的值(包括Cookies)-->
[input=名称,输入框显示长度]默认值[/input]
//这也是注释,php里面用的。定义一个指定长度的输入框,作用是排版,它并没有限制输入字数的作用。
[select=名称]
[option=提交值]显示值[/option]
……
[option]我又是提交值又是显示值[/option]
……
[/select]
#这也是PHP用的单行注释。
#这些UBB定义一个单项选择框。
#select可以缩写为sel,option可以缩写为op
#该选择框没有网址自动跳转的功能,请与柯林的奇怪UBB区别
#sel里面的两种op标签可以自由组合使用。缩写在任何地方都可用。
#提交时,$_提交方式['名称'] 的值就是sel被选中op的提交值。
[submit]显示名称[/submit]
#一个提交按钮
[submit=提交名称]显示名称和提交值[/submit]
#表单提交后程序可以通过 $_提交方式['提交名称'] 来判断你按下了哪个按钮。如$_GET['go']
其他元素,如单选框等,请通过html标签实现。
抱歉,忘记了一个:
[hidden=提交名]值[/hidden]
#隐藏域,可以缩写成[h=名]值[/h]
下面是WML兼容提交按钮:
[anchor=提交方式,显示名,目的地址]…这里是要提交的每一个项目…[/anchor]
[post=提交名]值[/post]
#固定值项目,相当于xhtml中的hidden
[pst=提交名和引用名]
#它被转换为[post=名]$(名)[/post],引用一个WML表单元素的值。
一个XHTML/WML兼容的表单:
[form=post,read.php?bid=[u.bid]&cid=test&pid=m]
输入内容[input=nr][/input]
[h=tst]0[/h]
[submit=go]提交[/submit]
[anchor=post,提交,read.php?bid=[u.bid]&cid=test&pid=m][pst=nr][post=tst]0[/post][post=go]提交[/post][/anchor]
[/form]
我想,你应该知道虎绿林很多地方为什么不实现WML兼容按钮了吧。
注:模板引擎会处理掉多余的代码,所以不用担心什么。
『动态调用』
在上面的例子中,我们使用了一个特殊的UBB:[u.bid],它是一个动态调用。在XHTML版中,它的值是xhtml,在WML版中它的值却是wml。
同样的UBB还有[u.cid](当前cid)和[u.pid](当前pid)
还有一些简化的UBB
[u.b],被替换为 bid=[u.bid]
同样的还有[u.c]和[u.p]。
于是,一个地址可以写成read.php?[u.b]&[u.c]&[u.p](指向自己),而且当你移动它到不同目录时你不需要更改任何内容。
注:在php中使用它们需要添加“魔术百分号”,在下一节讲。
呃,我发现自己又漏掉一个xhtml表单元素:
[file=提交名]WML中提示不支持文件上传的提示语[/file]
#文件浏览和上传框
『条件显示和条件执行』
[isxhtml]XHTML可见内容[/ishtml]
[iswml]WML可见内容[/iswml]
原理:在xhtml里模板引擎会在最开始就去掉iswml里面的内容,wml里相反。因此,该标签在php代码段里也可用(此所谓条件执行)。
下一节:在PHP中使用的UBB
补:
动态调用中还有[u.sid]和[h.sid]
[u.sid]只有在浏览器不支持Cookies时才被替换为&sid=<?php echo $PAGE['sid']; ?>,建议加在form地址的结尾
[h.sid]只有在不支持cookies时才被替换为[h=sid]<?php echo $PAGE['sid']; ?>[/h],用于在GET类型表单中传递sid(请不要忘记Q浏那经典的read.php?cid=test&pid=m&sid=abcd?a=a&b=b的BUG)
2025-07-06 05:49:59