php中的parse_url函数学习理解

有些东西虽然很简单,但是感觉如果自己不去做的话,可能过很短一段时间就忘记了,在写博客的过程就是等于进一步加深了自己的印象,打算最近看看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编辑


你可能感兴趣的:(php)