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
php.ini 中文版
Oct 28 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 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+ajax无刷新上传图片实例代码
2015/11/17 PHP
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
js读写json文件实例代码
2014/10/21 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
js实现录音上传功能
2019/11/22 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
python清理子进程机制剖析
2017/11/23 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
python模块导入的方法
2019/10/24 Python
英国高街电视:High Street TV
2018/05/22 全球购物
奠基仪式策划方案
2014/05/15 职场文书
毕业典礼主持词
2015/06/29 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS