PHP伪静态隐藏传递参数名的四种方法
2023-06-13 09:14:16 时间
伪静态方法一:
复制代码代码如下:
<?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_UrlQueryStrListas$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>";
//1echo$_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
//伪静态方法三
functionmod_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
}elsedie("Path:Error!");
//相当于soft.php?gid=1&sid=100&softid=8630
}elsedie("Path:Nothing!");
?>
相关文章
- php静态延迟方法,phpstatic延迟静态绑定_PHP教程
- 快速修改PHP镜像中的php.ini并生效 - wuuconix's blog
- MySQL异常捕获:使用PHP技巧轻松完成(php捕获mysql异常)
- PHP和MySQL:构建动态网站的利器(php与mysql)
- 快速步骤:安装PHP访问Oracle数据库(php安装oracle)
- 构建你的网站:PHP与MySQL的配置(PHP和MySQL的配置)
- 数据库PHP编程实现从Oracle数据库读取数据(php读取oracle)
- 使用PHP操作Redis:简单灵活的方法(php如何使用redis)
- 数据PHP实现MySQL数据导出的实现方法(php导出mysql)
- 学习PHP提升Linux技能(php学linux)
- PHP读取Linux文件的方法(php读取linux文件)
- PHP从Linux中读取文件的方法(php读取linux文件)
- 如何使用PHP重启Linux服务:简易教程(php重启linux服务)
- PHP操作MySQL数据库详解,快速学习调用方法(php怎么调用mysql)
- 从PHP到MSSQL:实现高效转换(php转换mssql)
- Linux下轻松执行PHP文件的方法(linux执行php文件)
- PHP与MySQL实现三表关联操作(mysql三表关联pHP)
- php-accelerator网站加速PHP缓冲的方法
- 不重新编译PHP为php增加openssl模块的方法
- php入门学习知识点六PHP文件的读写操作代码
- php生成静态文件的多种方法分享
- PHP中实现生成静态文件的方法缓解服务器压力
- php设置静态内容缓存时间的方法
- 图解找出PHP配置文件php.ini的路径的方法