2013-05-16 109 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); 
相关问题