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
wordpress之wp-settings.php
Aug 17 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
php session劫持和防范的方法
Nov 12 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
laravel配置Redis多个库的实现方法
Apr 10 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 变量定义方法
2009/06/14 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
jQuery插件开发基础简单介绍
2013/01/07 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python 读取DICOM头文件的实例
2018/05/07 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
python中时间模块的基本使用教程
2019/05/14 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
饮料业务员岗位职责
2013/12/15 职场文书
安全月活动总结
2014/05/05 职场文书
热门专业求职信
2014/05/24 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电