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 相关文章推荐
url decode problem 解决方法
Dec 26 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
php备份数据库类分享
Apr 14 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
php7 新增功能实例总结
May 25 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 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
apache mysql php 源码编译使用方法
2012/05/03 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
使用python实现简单五子棋游戏
2019/06/18 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
一行python实现树形结构的方法
2019/08/09 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python socket聊天脚本代码实例
2020/01/02 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
零基础学python应该从哪里入手
2020/08/11 Python
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
办公室文员自荐书
2014/02/03 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
营销总监岗位职责
2014/09/16 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
员工手册编写范本
2015/05/14 职场文书
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android