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 相关文章推荐
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
smarty的section嵌套循环用法示例
May 28 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
jQuery的框架介绍
2016/05/11 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
安全生产实施方案
2014/02/23 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
二人合伙经营协议书
2014/09/13 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
英语复习计划
2015/01/19 职场文书
2016年校长新年寄语
2015/08/17 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android