例如这里是一个a.php:if(isset($_GET['a']))echo'There\'san"a".';elseif(isset($_GET['b']))echo'There\'sa"b".';elseecho'Nothing\'soutthere.';?>而b.php,从用户输入得到了一个URL,正好是/a.php?b:assert($_GET["wanted"]==='/a.php?b');//是否存在一个方法whatever,令:$result=whatever($_GET["wanted"]);echostrtoupper($result);//THESE'SA"B".这些答案是不接受的:file_get_contents()或fopen()发起远程请求:服务器未必Listen了localhost,域名也是不确定的,并且发起远程请求开销太大.重定向:得到返回内容以后还要进一步处理.include或require_once:实际情况可能很复杂,包括urlmapping等等,根本不知道include哪个文件.另外这个URL还有可能是静态文件.更新20140511:貌似因为我刻意隐藏项目中的问题,所以很难让人清楚,非常抱歉.简单来说,我就是希望能得到whatever()的一种实现.我在项目中遇到的问题是这样的.一个网页,HTML中有一些JS和CSS的资源,可以直接行内展开.如果JS和CSS全部是静态这样好办,直接读入文件然后用正则替换上去就是了.然而某些JS是需要根据用户输入动态生成的,这样就必须要请求到这些PHP生成的JS,然后再替换上去.项目中将所有url都Rewrite到index.php,然后在index.php做urlmapping.包括当前的网页,和希望得到内容的JS,都通过index.php然后再生成.
凤凰求蛊
倚天杖
相关分类