2013-05-16 141 views
4

我正在閱讀pathinfobasename等。但是我從中收集的所有信息都是如何在使用絕對/相對路徑時獲得我想要的細節。我想弄清楚的是,如何從url字符串(不一定是活動URL,也許是用戶輸入url)獲得filename.ext使用PHP從URL字符串獲取文件路徑/擴展

目前我正在尋找獲取用戶提供的包含圖像的URL的文件名稱和擴展名。但是可能想要進一步延伸這條路。所以我想弄清楚如何我可以得到的文件名和擴展名

我想過試圖使用一些preg_match邏輯找到最後一個/在url中,分裂它,找到?從那個(如果有的話)中刪除,然後嘗試在剩下的部分之後將其整理出來。但我遇到的情況下,該文件有多個.的名稱即:2012.01.01-name.jpg

因此,我正在尋找一個理性的最佳方式做到這一點,沒有太多的誤差。

回答

1

您可以使用下面的代碼,你想要做什麼......

$fileName = $_SERVER['SCRIPT_FILENAME']; //$_SERVER['SCRIPT_FILENAME'] can be replaced by the variable in which the file name is being stored 
$fileName_arr = explode(".",$fileName); 

$arrLength = count($fileName_arr); 
$lastEle = $arrLength - 1; 
echo $fileExt = $fileName_arr[$arrLength - 1]; //Gives the file extension 
unset($fileName_arr[$lastEle]); 
$fileNameMinusExt = implode(".",$fileName_arr); 

$fileNameMinusExt_arr = explode("/",$fileNameMinusExt); 
$arrLength = count($fileNameMinusExt_arr); 
$lastEle = $arrLength - 1; 
echo $fileExt = $fileNameMinusExt_arr[$arrLength - 1]; //Gives the filename 
3
$path  = parse_url($url, PHP_URL_PATH);  // get path from url 
$extension = pathinfo($path, PATHINFO_EXTENSION); // get ext from path 
$filename = pathinfo($path, PATHINFO_FILENAME); // get name from path 

也有可能用的俏皮話:

$extension = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION); 
$filename = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_FILENAME); 
相關問題