天天看點

php快速分解路徑截取路徑

兩個函數:parse_url()和pathinfo()

mixed parse_url( string $url[, int $component = -1] )
mixed pathinfo( string $path[, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME] )      

1.url路徑分解:

parse_url('http://192.168.0.100:94/info/student/level_test_report/2019_03_06_5c7f1cde6a4ff.jpg');
parse_url('http://192.168.0.100:94/info/student/level_test_report/2019_03_06_5c7f1cde6a4ff.jpg', PHP_URL_PATH);      

可選參數:

url

要解析的 URL。無效字元将使用 _ 來替換。

component

指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一個來擷取 URL 中指定的部分的 string。 (除了指定為 PHP_URL_PORT 後,将傳回一個 integer 的值)。

array:4 [
  "scheme" => "http"
  "host" => "192.168.0.100"
  "port" => 94
  "path" => "/info/student/level_test_report/2019_03_06_5c7f1cde6a4ff.jpg"
]

"/info/student/level_test_report/2019_03_06_5c7f1cde6a4ff.jpg"      

2.檔案路徑分解

pathinfo('/info/student/level_test_report/2019_03_06_5c7f1cde6a4ff.jpg')      

可選參數:

path

要解析的路徑。

options

如果指定了,将會傳回指定元素;它們包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION 或 PATHINFO_FILENAME。

如果沒有指定 options 預設是傳回全部的單元。

array:4 [  
  "dirname" => "/info/student/level_test_report"
  "basename" => "2019_03_06_5c7f1cde6a4ff.jpg" 
  "extension" => "jpg"
  "filename" => "2019_03_06_5c7f1cde6a4ff"
  ]      

相關函數:

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz