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通用检测函数集合
Nov 25 PHP
从网上搜到的phpwind 0day的代码
Dec 07 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
php查询内存信息操作示例
May 09 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 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
用session做客户验证时的注意事项
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
Seajs的学习笔记
2014/03/04 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
举例讲解Python中装饰器的用法
2015/04/27 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python的历史与优缺点整理
2020/05/26 Python
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
工业自动化专业毕业生推荐信
2013/11/18 职场文书
捐书活动总结
2014/05/04 职场文书
会计系毕业求职信
2014/08/07 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书