Home  >  Article  >  php教程  >  如何运用PHP变量php_self实现页内跳转

如何运用PHP变量php_self实现页内跳转

WBOY
WBOYOriginal
2016-06-13 11:09:491054browse

我们也许对

这里的页内跳转不同等于html的书签之类的跳转,而是php程序通过URL的尾参数的改变在同一个程序里提供不同的Web内容。试比较以下两个URL:

http://www.gxblk.com/pc/index.php

http://www.gxblk.com/pc/index.php?page=2

以上两个URL,其区别是第二个URL地址多一个参数(?page=2),我们在实际打开它们时,在浏览器中得到的内容是不一样的,而点击时它们在同一页内跳转。这是使用PHP变量php_self实现的,用户编写的php程序将根据index.php尾部参数的不同而生成不同的内容,但都使用同一个网页程序(index.php),故我们称之为“页内跳转”,实际上,它生成的已经是另外一个Web文档了。

从上面第二个URL地址我们已经知道,内置变量$php_self用问号引导参数,具体表示格式如下:

$php_self?变量名=值 (实例:$php_sefl?id=0)

问号后面的变量名是自定义的,通常,根据需要命名为阅读性强一些的英文名称(可以是缩写)。比如说,我们让链接指向程序的某个功能块是完成一次删除操作,那么,我们可以命名为$del,体现在代码里则是$php_self?del=值,如果点击了该链接,程序就执行删除操作(当然,删除操作代码得另外编写):

链接代码:

<ol class="dp-xml">
<li class="alt"><span><span>print   </span></span></li>
<li>
<span>"</span><span class="tag"><span> </span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>="$php_self?</span><span class="attribute">del</span><span>=</span><span class="attribute-value">true</span><span>"</span><span class="tag">></span><span> </span></span>
</li>
<li class="alt"><span>删除选定内容  </span></li>
<li><span class="tag"><span> /a</span><span class="tag">></span><span>"; </span></span></li>
</ol>

跳转代码:

<ol class="dp-xml">
<li class="alt"><span><span>if($</span><span class="attribute">del</span><span>=="true")  </span></span></li>
<li><span> {  </span></li>
<li class="alt"><span>//这里是删除代码  </span></li>
<li><span>} </span></li>
</ol>

PHP变量php_self可以带多个参数,第一个参数使用问题(?)引导,后面的参数使用“与”号(&)引导,格式和举例如下:

【语法】$php_self?变量1=值&变量2=值&变量3=值

【例子】$php_self?user=blackhorse&id=write&page=0

原则上,$php_self的尾部参数书写时应连在一起,但与号连接的变量可用空格或其他有效符号(如+号)隔开——有时我们的确需要将它们隔开,例如要想通过arv的验证,符号&会有些影响,隔开后生成的html代码才被arv所承认。

PHP变量php_self是php的一个十分有用的内置变量,通常用于分页、执行预定义操作等。它所带的尾部参数中的各变量在php中使用$来读取,如以下地址:

http://www.gxblk.com/pc/index.php?page=3

我们将这样从以上地址读取页码并显示该页面的内容:

$conts=echo_conts($page);

echo_conts是一个自编函数,它用于显示每一页的内容,而变量$page的值是关键所在,它决定程序从库文件中提取的内容范围。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn