欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年01月13日 16:27:26   作者:八面碰壁居士  
PHP偽靜態(tài)的使用主要是為了隱藏傳遞的參數(shù)名,下面給大家介紹php實(shí)現(xiàn)偽靜態(tài)的方法,對php實(shí)現(xiàn)偽靜態(tài)相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧

PHP偽靜態(tài)的使用主要是為了隱藏傳遞的參數(shù)名,下面給大家介紹php實(shí)現(xiàn)偽靜態(tài)的方法,具體詳情請看下文。
說起偽靜態(tài)的實(shí)現(xiàn)方案,你是不是很爽快的回答"簡單,配置下apache的重寫規(guī)則就行了嘛"

但是你有沒有發(fā)現(xiàn)這種情況,你最近弄了很多新功能,每天上幾個新功能,每天都有好多偽靜態(tài)配置,才開始兩天運(yùn)維同學(xué)還樂意配合,過兩天運(yùn)維同學(xué)就要罵了。你麻痹,腦殘為什么不一次搞完,天天麻煩我。但是了,你要上線啊,不得不苦逼的求運(yùn)維同學(xué)了,然后說出一句程序猿界最不要臉的話"這次最后一次改動了",然后后面又要改,哎,你的人格算是掃地了。。。

如果有這樣的煩惱存在,請看下面的文章,保證你以后再也不求運(yùn)維了,想干啥就干啥。。。

那PHP實(shí)現(xiàn)偽靜態(tài)有多少種方法了?個人見解和統(tǒng)計(jì)奧,有四種方法

1、使用apache的URL重寫規(guī)則,這個大家都懂,在apache里面配置, 這里同學(xué)們都造,只列舉一段簡單的配置

RewriteEngine On
RewriteRule ^/test.html index.php?controller=index&action=test [L]

2、使用PHP的pathinfo , 你是不是有看到有的網(wǎng)站這樣玩'www.xxx.com/index.php/c/index/a/test/id/100' , 當(dāng)然要支持這種你需要把'php.ini' 中的參數(shù)

'cgi.fix_pathinfo' 設(shè)置為1。拿'www.xxx.com/index.php/c/index/a/test/id/100'來舉例

echo $_SERVER['PATH_INFO']; //輸出'/c/index/a/test/id/100'
到這,應(yīng)該明白了吧,你再對這段進(jìn)行解析,分配實(shí)際地址

3、使用404機(jī)制,一般情況下偽靜態(tài)都是實(shí)際不存在的頁面,因此可以使用apache 404配置,但是有些問題,就是'post'類型的請求會被拋棄,導(dǎo)致你無法獲取'$_POST',

但是'$_GET'仍然可以獲取, 假設(shè)此處404頁面為'404page.php', apache 配置如下:

ErrorDocument 404 /404page.php

然后在 '404page.php'中嵌入如下代碼

header("HTTP/1.1 200 OK"); //這里一定要有,不然狀態(tài)就是404
$reqUrl = $_SERVER['REQUEST_URI']; // 請求地址
/**
* 從URL中解析參數(shù)
*/
function parseUrlParams($queryUrl)
{
$arr = explode('?', $queryUrl);
parse_str($arr[1], $param);
if($param)
{
foreach($param as $key => $value)
{
$_GET[$key] = $value;
}
}
}
parseUrlParams($reqUrl); // url解析參數(shù)
//然后你就可以使用 $reqUrl 根據(jù)自己的規(guī)則匹配不同的實(shí)際請求地址
if(preg_match('#^/test.html#is', $reqUrl, $matches))
{
include('index.php');
die();
}

4、方法3的改進(jìn)型,方法3在apache內(nèi)部機(jī)制相當(dāng)于重定向了,導(dǎo)致post(get)傳遞的參數(shù)無法獲取。分析上面的其實(shí)是找不到相關(guān)文件,那當(dāng)服務(wù)器找不到相關(guān)文件時,我們?yōu)樗付ㄒ粋€文件,不就OK了,它就不用跳轉(zhuǎn)了,這時POST之類都不會丟失。apache 配置如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

上面一段配置的大概意思是 當(dāng)請求的文件或者目錄無法找到時 使用根目錄下的 'index.php' 替代,那這時你就可以在'index.php'中獲取相關(guān)參數(shù)并解析到實(shí)際請求地址

/**
* 獲取當(dāng)前請求的URI地址
*@param void
*@author painsOnline
*@return string URI
*/
function getReqUri()
{
return trim($_SERVER["REQUEST_URI"]);
}
$reqUri = getReqUri();
if(preg_match('/^\/test.html/isU', $reqUri))
{//解析請求地址
include 'test.php';
exit();
}

以上內(nèi)容給大家介紹了php實(shí)現(xiàn)偽靜態(tài)的方法,希望對大家有所幫助。

相關(guān)文章

  • 淺析PHP文件下載原理

    淺析PHP文件下載原理

    這篇文章主要介紹了淺析PHP文件下載原理,需要的朋友可以參考下
    2014-12-12
  • PHP中用Trait封裝單例模式的實(shí)現(xiàn)

    PHP中用Trait封裝單例模式的實(shí)現(xiàn)

    這篇文章主要介紹了PHP中用Trait封裝單例模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • php命令行模式代碼實(shí)例詳解

    php命令行模式代碼實(shí)例詳解

    這篇文章主要介紹了關(guān)于php命令行模式代碼實(shí)例詳解,有感興趣的同學(xué)可以借鑒參考下
    2021-02-02
  • Laravel框架控制器,視圖及模型操作圖文詳解

    Laravel框架控制器,視圖及模型操作圖文詳解

    這篇文章主要介紹了Laravel框架控制器,視圖及模型操作,結(jié)合實(shí)例形式詳細(xì)分析了laravel框架控制器,視圖及模型的基本功能、原理與相關(guān)操作使用技巧,需要的朋友可以參考下
    2019-12-12
  • php版微信公眾平臺開發(fā)之驗(yàn)證步驟實(shí)例詳解

    php版微信公眾平臺開發(fā)之驗(yàn)證步驟實(shí)例詳解

    這篇文章主要介紹了php版微信公眾平臺開發(fā)之驗(yàn)證步驟,結(jié)合實(shí)例形式詳細(xì)分析了php微信公眾平臺驗(yàn)證的操作步驟與相關(guān)參數(shù)含義,需要的朋友可以參考下
    2016-09-09
  • ThinkPHP中圖片按比例切割的代碼實(shí)例

    ThinkPHP中圖片按比例切割的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于ThinkPHP中圖片按比例切割的代碼實(shí)例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時更新發(fā)布代碼(thinkphp6.0.7)

    phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時更新發(fā)布代碼(thinkphp6.0.7)

    這篇文章主要介紹了phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時更新發(fā)布代碼(thinkphp6.0.7),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • PHP判斷指定時間段的2個方法

    PHP判斷指定時間段的2個方法

    有時我們需要在一天中的某個時間段進(jìn)行某項(xiàng)任務(wù),或者在一天中的不同小時里進(jìn)行不同的任務(wù),使用PHP如何實(shí)現(xiàn)呢,下面的兩個例子都可以解決這個問題
    2014-03-03
  • ThinkPHP控制器里javascript代碼不能執(zhí)行的解決方法

    ThinkPHP控制器里javascript代碼不能執(zhí)行的解決方法

    這篇文章主要介紹了ThinkPHP控制器里javascript代碼不能執(zhí)行的解決方法,采用ThinkPHP的<literal>標(biāo)簽來解決javascript標(biāo)簽被解析的問題,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • Laravel框架查詢構(gòu)造器簡單示例

    Laravel框架查詢構(gòu)造器簡單示例

    這篇文章主要介紹了Laravel框架查詢構(gòu)造器,結(jié)合實(shí)例形式分析了Laravel框架操作數(shù)據(jù)庫增刪改查、排序、統(tǒng)計(jì)等簡單操作技巧,需要的朋友可以參考下
    2019-05-05

最新評論