php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解
PHP 伪静态实现技术原理讲解
发布于 2015-01-18 23:52:58 | 129 次阅读 | 评论: 0 | 来源: 网友投递
PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。
本文为大家讲解的是PHP 伪静态实现技术原理讲解,感兴趣的同学参考下。
伪静态技术比较好突破,需要自己构造中转注入页面;伪静态技术原理都很简单,就是把原来的 index.php?id=1 这种形式的URL给替换成其它形式
先说实现方法:
inj.php:
set_time_limit(10);
$id=$_GET["id"];
$id=str_replace(" ","%20",$id);
$id=str_replace("=","%3D",$id);
$url="http://www.xxx.com/index.php/library/more/id/$id.html";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"$url");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//启用时将curl_init()获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch,CURLOPT_HEADER,0);//启用时会将头文件的信息作为数据流输出
$output=curl_exec($ch);
curl_close($ch);
print_r($output);
?>
用wamp搭建一个服务器,把上面inj.php放到wamp/www/中,然后在Havij中跑 http://127.0.0.1/inj.php?id=1
=============================
PHP伪静态实现方法一(利用Apache 服务器的功能)
1、检查Apache是否支持mod_rewrite
2、让Apache 支持.htaccess
3、建立.htaccess文件
4、规则:
RewriteEngine on
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2
([a-zA-Z]{1,})-([0-9]{1,}) 是 URL长啥样
$1 是([a-zA-Z]{1,}) 所匹配的
$2 是[0-9]{1,} 所匹配的
比如说:www.xx.com/page-18.html
真实的URL如下:
action = page
id = 18
============================
PHP伪静态实现方法二(编码实现)
$Php2Html_FileUrl = $_SERVER["REQUEST_URI"]
echo $Php2Html_FileUrl
例子:// localhost/php100/test.php?id|1@action|2
$Php2Html_UrlString = str_replace("?","",str_replace("/","",strrchr(strrchr($Php2Html_FileUrl,"/"),"?")) ))
/*
内层的strrchr出来:/test.php?id|1@action|2
外层的strrchr出来:id|1@action|2
内层的str_replace出来:把 / 号去掉,本例子 没有
外层的str_replace出来:把 ?号去掉,本例子 没有
*/
$Php2Html_UrlQueryStrList = explode("@",$Php2Html_UrlString);
/*把str变成以@为界限划分的数组:id|1 和 action|2*/
foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr)
{
$Php2Html_TmpArray = explode("|",$Php2Html_UrlQueryStr);
/* id => 1 和 action => 2*/
$_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1];
}
============================
PHP伪静态实现方法三(编码实现)
例子: localhost/php100/test.php/1/2
$filename = basename($_SERVER["SCRIPT_NAME"]);
echo $_SERVER["SCRIPT_NAME"];
echo $filename;
if(strtolower($filename) == 'test.php'){
if(!empty($_GET[id])){
$id=intval($_GET[id]);
echo $id;
$action = intval($_GET[action]);
echo $action;
}else{
$nav=$_SERVER["REQUEST_URI"];
$script=$_SERVER["SRCIPT_NAME"];
//这句话应该是把URL前面那段给搞掉。。剩下 "1/2"之类的。。
$nav=ereg_replace("$script","",urldecode($nav));
echo $nav;
$vars = explode("/",$nav);
print_r($vars);
$id=intval($vars[1]);
$action=intval($vars[2]);
}
echo $id.'&'.$action;
}
============================
PHP伪静态实现方法四(编码实现)
function mod_rewrite(){
global $_GET;
$nav = $_SERVER["REQUEST_URI"];
$script_name = $_SERVER["SCRIPT_NAME"]
$nav=substr(ereg_replace("$script_name"),"",urldecode($nav)),1);
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//去掉尾部的htm或html
$vars=explode("/",$nav);
print_r($vars);
for($i=0;$i
{
$_GET[$vars[$i]] = $vars[$i+1];
}
return $_GET;
}
============================
PHP伪静态实现方法五(编码实现)
例子:/1,100,8630.html
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
echo "Path:Error!";
总结下:
(1)伪静态技术比较好突破,需要自己构造中转注入页面。
(2)伪静态技术原理都很简单,就是把原来的 index.php?id=1 这种形式的URL给替换成其它形式。
相关阅读:
PHP 伪静态实现技术原理讲解
PHP 伪静态隐藏传递参数名的四种方法
php+.htaccess伪静态的实现方法
不用mod_rewrite直接用php实现伪静态化页面代码
php下实现伪静态的超简单方法
PHP生成静态页面原理讲解
使用纯php代码实现页面伪静态的方法
PHP实现伪静态方法汇总
PHP图像识别技术原理与实现
PHP中的插件机制原理和实现方法
php环境套包 dedeampz 伪静态设置示例
PHP生成静态文件的方法缓解服务器压力实现思路及代码
php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解相关推荐
- 伪静态php配置,PHP开启伪静态配置
1.检测Apache是否开启mod_rewrite功能 可以通过php提供的phpinfo()函数查看环境配置,找到"Loaded Modules",其中列出了所有apache2h ...
- Nginx伪静态配置和常用Rewrite伪静态规则集锦
伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面我来介绍nginx 伪静态配置方法 nginx里使用伪静态是直接在nginx.conf ...
- php网站怎么伪静态,php怎么实现网页伪静态
php实现网页伪静态的方法:首先在服务器根目录创建一个".htaccess"文件:然后添加内容为"RewriteRule ^index-(\d+)\.html$ inde ...
- php中什么是伪静态,thinkphp中什么是伪静态?
什么是伪静态? 简单说就是将动态的url变成静态的url显示,就叫做伪静态."伪"就是假的,不是真的静态url,是通过技术手段实现的. 伪静态技术是指展示出来的是以html一类的静 ...
- 织梦伪静态生成html,织梦伪静态助手
插件名称: 织梦伪静态助手 插件介绍: <织梦伪静态助手>是织梦58发布的一款伪静态插件,通过该插件可以非常方便的打开织梦伪静态功能,且访问路径与PC版静态地址一致,对SEO更加友好.页面 ...
- php 伪静态作用,伪静态是什么?php使用伪静态的意义?
有很多小伙伴们都是在做php开发工作,很多时候你们可能都会听到php伪静态这么一说,可能其中有很多小伙伴不知道什么是php伪静态,那么我们今天就带大家了解下什么是php伪静态,以及php使用伪静态的意 ...
- 18位身份证号验证算法的原理以及C#实现和在管理系统的应用
18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码.在实际的管理系统中应用!经过我自己的 ...
- 第18章 请勿陷入对技术的狂热之中
第18章 请勿陷入对技术的狂热之中 如果你能让自己不成为某种技术的信徒, 你会在职业生涯之路走得更远 成为信徒的坏处在于往往狂热和富有偏见 作业: 和追求某个技术的人开诚布公地讨论为什么喜欢这个技术?
- php伪静态不支持中文,wordpress伪静态如何支持中文(目前不支持分类目录中文)...
自定义结构可以用你自己喜欢的,比如可以只用用"/%post_id%.html",这样的访问地址就会是"http://xxx.com/id.html":当然你也可 ...
最新文章
- PAT甲级1151 LCA in a Binary Tree (30 分):[C++题解]LCA、最低公共祖先、哈希表映射
- linux 英伟达 分辨率,配置nVidia显卡修改Ubuntu分辨率
- ffmpeg: error while loading shared libraries: libavdevice.so.52
- flexcell控件 许可证信息没有找到_报表控件 ActiveReports 全面迎来 .Net Core 时代
- 计算机维修知识综述论文,机器学习领域各领域必读经典综述论文整理分享
- 高职院校计算机基础课程,高职院校计算机基础课程教学探讨的论文
- Oracle几种清除数据的方式,在平台用别的医院数据库做初始化时有用
- hyper-V管理器构建win7虚拟机
- JFreechart从入门到放弃
- Vue 移动端 股票 分时 K线
- 基于nacos搭建springboot 抽取axios
- 树莓派编译ch934x usb转多串口驱动
- Python项目文件引用问题:ImportError: attempted relative import with no known parent package
- 解决idea在运行时出现Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8?
- 记录自己的成长--个人日记1
- LIGO 用 Python 分析引力波数据
- 网络计划--时间参数的计算和优化
- matlab用已知二维数组做plot_Matlab二维数组及其应用
- 【引用】雨林木风Ghost XP SP3系统
- HDTUNE软件测试自学,HDTune Pro读取性能测试_DIY攒机-中关村在线