摘要:繼上篇真假之后的怪事問題解決之后,我又遇到了哪些問題得到的數據,竟然沒有一個地方使用,也沒有定義變量。我的大腦真的有點抽,怎么回事情找不到變量定義具體是怎么回事呢我在下的中得到思路。
繼上篇真假rewrite之后的怪事
rewrite問題解決之后,我又遇到了哪些問題?
$_GET得到的數據,竟然沒有一個地方使用,也沒有定義變量。
我的大腦真的有點抽,怎么回事情?找不到變量定義!?
具體是怎么回事呢?
我在class下的index.php中得到思路。
那就是數組變換成變量
這個方法是第一次見到,還真真的第一次見到
方法如下
$_GET && extract($_GET);
我苦苦思索,需要的變量到底是哪里來的,使用sublime txt 在路徑中查找就是沒有找到,結果逐步跟蹤的時候,發現這個東西
extract() 方法在手冊中是這樣說的
extract — 從數組中將變量導入到當前的符號表
說明
intextract ( array&$var_array [, int$extract_type = EXTR_OVERWRITE [, string$prefix = NULL ]] )
本函數用來將變量從數組中導入到當前的符號表中。
檢查每個鍵名看是否可以作為一個合法的變量名,同時也檢查和符號表中已有的變量名的沖突。
雖然php提供了如此優秀的方法,作為一個PHP的初學者,真心不愿意你使用這種方法,尤其是在不斷的include的情況下,
看一下文件路徑你就會知道了
root-class ----index.php 文件a -lib ----index.php 文件b -index.php 文件c -rewrite.php 文件d
整個系統文件執行過程是Apache偽靜態重寫至文件d
文件d對重寫后的url進行解析(主要是一個preg_match方法進行正則對比)我再放一遍 主要方法,上篇文章的代碼太多,很多人肯定看不下去了。
function __rewrite(){ global $r_rewrite,$r_uri,$r_d,$r_dir,$r_content_type_list; $matching=false; foreach($r_rewrite as $v){ if(preg_match($v[0],$r_uri,$matches)){ $r_uri=$v[1]; $r_uri=preg_replace("/$(d+)/e","$matches[$1]",$r_uri); $matching=true; break; } if($matching){ $url_info=parse_url($r_uri); $r_include=str_replace("/",$r_d,$r_dir.$url_info["path"]); if(file_exists($r_include) && filetype($r_include)=="file"){ if($query=$url_info["query"]){ $sp=explode("&",$query); foreach($sp as $v){ $sp2=explode("=",$v); $_GET[$sp2[0]]=addslashes(urldecode($sp2[1]));//重要 } $_SERVER["QUERY_STRING"]=$query; } //if($url_info[""]) return $r_include; } else return __rewrite(); } else return false; }
解析后 如果正確解析則引入文件c 在 文件c 中引入 文件a 在文件a中引入文件b
文件a中使用extract 方法對$_GET 進行變量轉換,在文件b中使用$_GET轉換后的變量
流程就是上面的樣子了, 這是多么讓人悲哀的事情,多重的include,在沒有手冊指導和注釋引導的情況下,對系統的二次開發和后期維護造成很大難度。
故而本文不建議新手php使用這個方法。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20786.html
摘要:需要的數據就是這個快遞軌跡,看到上面的好像沒什么問題,挺容易的,這還有什么比這爽的,趕緊使用請求一波。由于說過了,就不多說了,突破了繼續刷新也會遇到一些未定義的,也是同樣扣代碼,就不多說了,這里說另一個。 原本昨天就要發文章的了,由于之前的pdd文章被投訴了,刪除了,影響心情的同時也不敢亂發文章了,所以就暫時歇了一天,也改了另外一個網站,就是今天的物流網站。如果大家某天看不到我發文了,...
摘要:小清新,就是說的啊首先感謝社區通過我的審核,給我一個平臺。風格很好,左右分工很好。以后將會在這里開博客了。 小清新,就是說的SegmentFault blog啊 首先感謝社區通過我的審核,給我一個平臺。 風格很好,左右分工很好。 以后將會在這里開博客了。 最近接手一個項目里面也有偽靜態來工作 分析其原理讓我有點腦大,尤其是一開始上手的時候沒有手冊,沒有 *關于wordpre...
摘要:如果你的服務器提供某些資源的下載,那么你就必須多加小心諸如迅雷等下載軟件,因為它們可能把你網站資源吸干,并且影響你的正常訪客訪問。 目錄一、準備開始:mod_rewrite 二、利用.htaccess實現URL重寫(rewrite)與URL重定向(redirect) 將.htm頁面映射到.php 臨時重定向(R=302)與永久重定向(R=301) 為什么要用重定向?——重定向和URL...
閱讀 1661·2021-10-29 13:11
閱讀 825·2021-09-22 10:02
閱讀 1687·2021-08-20 09:35
閱讀 1548·2019-08-30 15:54
閱讀 2457·2019-08-30 15:44
閱讀 1379·2019-08-29 16:52
閱讀 1098·2019-08-23 12:56
閱讀 749·2019-08-22 15:16