有些东西虽然很简单,但是感觉如果自己不去做的话,可能过很短一段时间就忘记了,在写博客的过程就是等于进一步加深了自己的印象,打算最近看看laravel的源码,开阔一下自己的视野
在看server.php入口文件的时候,看到了下面的代码
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
我看到之后感觉有点奇怪,$_SERVER['REQUEST_URI']返回的不是域名后面所有的内容,parse_url不是用来解析url的吗,为什么可以用来解析不是url的字符串呢,于是自己动手测试,写了如下代码
$a = '/oop?b=1';
$b = parse_url($a, PHP_URL_PATH);
var_dump($b);
输出值为
string(4) "/oop"
当代码为
$a = '/oop?b=1';
$b = parse_url($a);
var_dump($b);
输出值为
array(2) { ["path"]=> string(4) "/oop" ["query"]=> string(3) "b=1" }
由此得出,开来parse_url这个函数现在也不是一定要是非常标准的url才能返回了,
测试完了之后,就看了一下这个函数在php手册上的说明
原来在5.4.7的时候修复了
2016-11-8 22:30编辑