PHP 伪静态隐藏传递参数名的四种方法


Posted in PHP onFebruary 22, 2010

伪静态方法一:

<?php 
//伪静态方法一 
// localhost/php100/test.php?id|1@action|2 
$Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; 
echo $Php2Html_FileUrl."<br>"; 
// /php100/test.php?id|1@action|2 
$Php2Html_UrlString = str_replace("?","",str_replace("/", "", strrchr(strrchr($Php2Html_FileUrl, "/"),"?"))); 
echo $Php2Html_UrlString."<br>"; 
// id|1@action|2 
$Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString); 
print_r($Php2Html_UrlQueryStrList); 
// Array ( [0] => id|1 [1] => action|2 ) echo "<br>"; 
foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr) { 
$Php2Html_TmpArray = explode("|", $Php2Html_UrlQueryStr); 
print_r($Php2Html_TmpArray); 
// Array ( [0] => id [1] => 1 ) ; Array ( [0] => action [1] => 2 ) 
echo "<br>"; 
$_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; 
} 
//echo '假静态:$_GET变量<br />'; 
print_r($_GET); 
// Array ( [id|1@action|2] => [id] => 1 [action] => 2 ) echo "<br>"; 
echo "<hr>"; 
echo $_GET[id]."<br>"; 
// 1 echo $_GET[action]; 
// 2 
?>

伪静态方法二: 
<?php 
//伪静态方法二 
// localhost/php100/test.php/1/2 
$filename = basename($_SERVER['SCRIPT_NAME']); 
echo $_SERVER['SCRIPT_NAME']."<br>";// /php100/test.php 
echo $filename."<br>";// test.php 
if(strtolower($filename)=='test.php'){ 
if(!empty($_GET[id])){ 
$id=intval($_GET[id]); 
echo $id."<br>"; 
$action=intval($_GET[action]); 
echo $action."<br>"; 
}else{ 
$nav=$_SERVER['REQUEST_URI']; 
echo "1:".$nav."<br>";// /php100/test.php/1/2 
$script=$_SERVER['SCRIPT_NAME']; 
echo "2:".$script."<br>";// /php100/test.php 
$nav=ereg_replace("^$script","",urldecode($nav)); 
echo $nav."<br>"; // /1/2 
$vars=explode("/",$nav); 
print_r($vars);// Array ( [0] => [1] => 1 [2] => 2 ) 
echo "<br>"; 
$id=intval($vars[1]); 
$action=intval($vars[2]); 
} 
echo $id.'&'.$action; 
} 
?>

伪静态方法三:
<?php 
//伪静态方法三 
function mod_rewrite(){ 
global $_GET; 
$nav=$_SERVER["REQUEST_URI"]; 
echo $nav."<br>"; 
$script_name=$_SERVER["SCRIPT_NAME"]; 
echo $script_name."<br>"; 
$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1); 
echo $nav."<br>"; 
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm 
echo $nav."<br>"; 
$vars = explode("/",$nav); 
print_r($vars); 
echo "<br>"; 
for($i=0;$i<Count($vars);$i+=2){ 
$_GET["$vars[$i]"]=$vars[$i+1]; 
} 
return $_GET; 
} 
mod_rewrite(); 
$year=$_GET["year"];//结果为'2006' 
echo $year."<br>"; 
$action=$_GET["action"];//结果为'_add' 
echo $action; 
?>

伪静态方法四:
<?php 
//伪静态方法四 
//利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html 也就是执行脚本名后面的部分 
if(@$path_info =$_SERVER["PATH_INFO"]){ 
//正则匹配一下参数 
if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){ 
$gid=intval($arr_path[1]); //取得值 1 
$sid=intval($arr_path[2]); //取得值100 
$softid=intval($arr_path[3]); //取得值8630 
}else die("Path:Error!"); 
//相当于soft.php?gid=1&sid=100&softid=8630 
}else die('Path:Nothing!'); 
?>
PHP 相关文章推荐
PHP中的加密功能
Oct 09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 #PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 #PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 #PHP
用Zend Encode编写开发PHP程序
Feb 21 #PHP
PHP 学习路线与时间表
Feb 21 #PHP
php 高效率写法 推荐
Feb 21 #PHP
php 魔术函数使用说明
Feb 21 #PHP
You might like
我的论坛源代码(五)
2006/10/09 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
php实现读取内存顺序号
2015/03/29 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
Python实现多线程HTTP下载器示例
2017/02/11 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
python 编写简单网页服务器的实例
2018/06/01 Python
实例讲解python中的协程
2018/10/08 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
Python实现Restful API的例子
2019/08/31 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Python实现结构体代码实例
2020/02/10 Python
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
机械个人求职信范文
2014/01/24 职场文书
运动会通讯稿500字
2014/02/20 职场文书
十佳青年事迹材料
2014/08/21 职场文书
初中优秀学生评语
2014/12/29 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
python中的getter与setter你了解吗
2022/03/24 Python