2014-04-15 63 views
0

我被困在我的代碼中。檢查變量以什麼結尾?

我的網站的用戶應該給我一個圖像的鏈接,我將存儲在一個變量。 如何檢查鏈接以什麼結尾?擴展名如果您願意?

+0

可能的重複[如何從PHP中的路徑找到圖像的擴展?](http://stackoverflow.com/questions/3179294/how-to-find-the-extension-of-an-image- from-path-in-php) –

回答

1

您可以使用任何這些:

$ext = substr(strrchr(FILENAME, '.'), 1); 

$ext = substr(FILENAME, strrpos(FILENAME, '.') + 1); 

$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', FILENAME); 

它們的性能差異可以忽略不計(即使像500萬次跑;使用phpcb測試與PHP 7)

pathinfo()就像......非常慢,與此相比,只需獲得(最後)擴展名。

+0

感謝您給出性能信息,我不知道pathinfo()比替代方法滯後如此糟糕。 – FrenchMajesty

0

您可以使用子字符串方法「substr」來獲取最後一個發生期後的最後幾個字符,我可以用「strrpos」找到它。

strrposSee doc here)如果未找到最後一個匹配項,則返回false,如果匹配,則返回匹配索引。

$mystring = 'stackoverflow.png'; 
$pos = strrpos($mystring,'.'); 

if($pos === false) { // Note the triple '=' 
    // not found.. 
}else{ 
    echo substr($mystring, $pos); // print '.png' 
} 
0

雖然傑斐遜的回答是正確的,基於這個問題,更簡單的解決方案是使用PATHINFO_EXTENSION

pathinfo('/path/to/file/image.jpg', PHPINFO_EXTENSION); // returns 'jpg' 
相關問題