摘要:继上篇真假之后的怪事问题解决之后,我又遇到了哪些问题得到的数据,竟然没有一个地方使用,也没有定义变量。我的大脑真的有点抽,怎么回事情找不到变量定义具体是怎么回事呢我在下的中得到思路。
继上篇真假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使用这个方法。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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
阅读 1685·2021-08-20 09:35
阅读 1548·2019-08-30 15:54
阅读 2456·2019-08-30 15:44
阅读 1378·2019-08-29 16:52
阅读 1097·2019-08-23 12:56
阅读 748·2019-08-22 15:16