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开发文档 会员收费1期
Aug 14 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
19个超实用的PHP代码片段
Mar 14 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
详解PHP归并排序的实现
Oct 18 PHP
php技巧小结【推荐】
Jan 19 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
谈谈python中GUI的选择
2018/03/01 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
python中的tcp示例详解
2018/12/09 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
Python如何获取文件路径/目录
2020/09/22 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
高中物理教学反思
2014/02/08 职场文书
优良学风班总结材料
2014/02/08 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书