① parse_url參見
在php中,有幾個內置函數用於處理和解析文件或路徑的相關信息。讓我們逐個了解一下它們的功能。
首先,pathinfo() 函數是一個非常實用的工具,它能夠分解一個路徑,返迴路徑中的各個組成部分。這個函數會返回一個關聯數組,包括路徑的目錄部分、文件名部分以及可能的擴展名等信息。這對於需要處理文件路徑的場景非常有用。
另一個相關的函數是 parse_str(),它的作用是解析一個字元串,將其解析為變數。這個函數通常用於處理URL查詢字元串或HTTP POST數據,將其中的鍵值對轉換為PHP變數,方便進一步的操作和存儲。
對於單獨獲取路徑中的目錄部分,可以使用 dirname() 函數。它接收一個路徑作為參數,返回的是路徑中從根目錄到文件或目錄名的完整部分,不包括文件名。這對於需要提取文件目錄路徑時非常實用。
最後,如果你只需要文件名部分,basename() 函數則是你的選擇。它同樣接收一個路徑,返回的是路徑的最後一個部分,即文件名,不包含路徑信息。這對於處理文件名或下載鏈接時非常有用。
總的來說,這些函數在PHP中扮演著重要的角色,幫助開發者輕松處理和操作文件路徑,提高代碼的效率和可讀性。
(PHP 4, PHP 5)
② php 如何實現pathinfo
PHP中的全局變數$_SERVER['PATH_INFO']是一個很有用的參數,眾多的CMS系統在美化自己的URL的時候,都用到了這個參數。
對於下面這個網址:
http://www.test.com/index.php/foo/bar.html?c=index&m=search
我們可以得到 $_SERVER['PATH_INFO'] = 『/foo/bar.html』,而此時 $_SERVER['QUERY_STRING'] = 'c=index&m=search';
通常,我們最初開始PHP程序編寫的時候,都會使用諸如: http://www.test.com/index.php?c=search&m=main 這樣的URL,這種URL不僅看起來非常奇怪,而且對於搜索引擎也是非常不友好的。很多搜索引擎收錄的時候,都會忽略Query String之後的內容,google雖然不會忽略Query String,但是對於其他不含Query String的頁面,會給於比較高的PR值。
下面是一段解析PATH_INFO的非常簡單的代碼:
<?php
if( !isset( $_SERVER['PATH_INFO'] ) ){
$pathinfo = 'default';
}else{
$pathinfo = explode('/', $_SERVER['PATH_INFO']);
}
if( is_array($pathinfo) AND !empty($pathinfo) ){
$page = $pathinfo[1];
}else{
$page = 'a.php';
}
require "$page.php";