php_self是php的内置变量,记作$php_self,其作用是实现“页内跳转”。这里的页内跳转不同等于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=值,如果点击了该链接,程序就执行删除操作(当然,删除操作代码得另外编写):

链接代码:

print "<ahref=\"$php_self?del=true\">删除选定内容</a>";

跳转代码:

if($del=="true") {
   //这里是删除代码
}

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

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

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

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

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

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

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

$conts=echo_conts($page);

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

PHP函数:PHP_SELF的更多相关文章

  1. 【PHP】详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI、SCRIPT_NAME、PHP_SELF区别

    实例:1.http://localhost/index.php/Home/Home/index.html $_SERVER['QUERY_STRING'] = ""; $_SERV ...

  2. $_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]

    1.$_SERVER["SCRIPT_NAME"] 说明:包含当前脚本的路径 2.$_SERVER["PHP_SELF"] 说明:当前正在执行脚本的文件名 3. ...

  3. PHP获取当前url路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT...

    1,$_SERVER["QUERY_STRING"]说明:查询(query)的字符串 2,$_SERVER["REQUEST_URI"]说明:访问此页面所需的U ...

  4. php : 常用函数

    常用函数: <?php /** * 获取客户端IP * @return [string] [description] */ function getClientIp() { $ip = NULL ...

  5. 【PHP】分页条函数封装

    这两天在学习PHP 想做一个前端后台都包含的网站 看了一些视频发现大牛们都是将封装起来实现代码的重用性 本人技拙也写了个分页条函数的封装 分页条在用PHP网站开发中十分常用 通过封装代码来提高网站开发 ...

  6. php-长文章分页函数

    <?php function ff_page($content,$page) { global $expert_id; $PageLength = 2000; //每页字数 $CLength = ...

  7. PHP的$_SERVER['PHP_SELF']造成的XSS漏洞攻击及其解决方案

    $_SERVER['PHP_SELF']简介 $_SERVER['PHP_SELF'] 表示当前 PHP文件相对于网站根目录的位置地址,与 document root 相关. 假设我们有如下网址,$_ ...

  8. isset 和empty 两个函数的用法

    关于用php 获取当前脚本的url很多朋友会说很简单,但是要获取很详细的就要经过多次判断哦. $PHP_TIME = time();$PHP_SELF = isset($_SERVER['PHP_SE ...

  9. ThinkPHP 3.2.3 自动加载公共函数文件的方法

    方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件 ...

随机推荐

  1. javascript-图片横向无缝隙滚动(可在服务器运行)

    前两次弄'图片横向滚动'javascript,在本地上运行得很美,可是一上到我们学校后台的服务器,就有很多问题,这个算是行的了. css代码: <style type="text/cs ...

  2. Oracle 11g 新特性(一)-- 虚拟列

    数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Oracle11g 增加了虚拟列的新特性, 具体说明如 ...

  3. CoreAnimation5-图层时间和缓冲

    图层时间 动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要.在这一章中,我们来看看CAMediaTiming,看看Core Animation是如何跟踪时间的. CAMediaTimin ...

  4. Analyze 静态分析工具中显示 大量的CF类型指针 内存leak 问题, Core Foundation 类型指针内存泄漏

    Analyze 静态分析工具中显示 大量的CF类型指针 内存leak 问题   今天使用Analyze 看了下项目,   解决办法,项目中使用了ARC,OC的指针类型我们完全不考虑release的问题 ...

  5. SQL Trainning 总结

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  6. 一、C# 概述

    1.托管执行环境 2.程序集 3.关键字:C#保留字 4.除了C#定义的关键字之外,开发者可以提供他们自己的名称,编程语言将这些名称称为标识符 5.如果关键字包含一个"@"前缀,那 ...

  7. Qt中使用信号和槽的一点心得

    信号(Signal)与槽(Slot)-Qt中的典型机制 这一篇文章中都说得很详细了,这里不再重复,只说一点在实际使用中可能会遇到的问题. 1.一个信号不要同时连接几个槽函数,不然执行的顺序是随机的,最 ...

  8. Python之练习Demo

    遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果,代码如下: #coding:GBK import os; def SortList ...

  9. jquery mobile基本结构搭建

    官网:http://jquerymobile.com/ 基本结构:

  10. 第一天的CI笔记

    1 CI不区分大小写2. http://xxx.com/index/[控制器名称]/[控制器里面方法的确名称]/[传入方法的参数 ]/ 3. 控制器及控制器类名称与文件名称一致, 继承 CI_Cont ...