本文主要通过 parse_url()pathinfo() 两个方法进行解析 url。

以下为测试 demo :

$url = 'http://www.baidu.com/a/b/c/index.php?id=10';
 
$arr = parse_url($url);
var_dump($arr);
 
$arr2 = pathinfo($arr['path']);
var_dump($arr2);

结果:

array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(13) "www.baidu.com"
  ["path"]=>
  string(16) "/a/b/c/index.php"
  ["query"]=>
  string(5) "id=10"
}
array(4) {
  ["dirname"]=>
  string(6) "/a/b/c"
  ["basename"]=>
  string(9) "index.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(5) "index"
}

其他的一些函数或者正则也实现了相同或相似的功能:
PHP根据文件路径获取文件名 - seasidecrab

关于 basename 函数的一个 bug 及解决方法:
解决 basename 无法获取中文文件名的 bug - seasidecrab

转自:杭州周煜 - CSDN