2012-10-27 50 views
-4

我正在嘗試使用php提取字符串的擴展名,然後查看數組。看來我確實得到了擴展名,但是當我在數組裏面看它不起作用,我不能看到問題。也許你可以建議或指出我。謝謝。如何在php中提取擴展名

下面是代碼:

$file = '/folder/subfolder/file.mp4' //It can be also a url with domain etc. basically anything 

$extension = pathinfo($file); 
$final_extension = strtolower($extension['extension']); 

$fileArray = array("mp4","mp3"); 

if (in_array($final_extension, $fileArray)) { 
    echo "Found!"; 
} 
+4

Works爲我http://ideone.com/wjEove –

+0

燁。第一行的分號會讓你的腳本根本不起作用。 也嘗試在'$ extension'數組上使用'print_r()'來確保你在那裏有信息。 – rkstar

+0

綽綽有餘重複選擇從http://stackoverflow.com/search?q=file+extension+php - 請問之前請先搜索。而且谷歌也不會告訴你這個解決方案。 – Gordon

回答

1

您可以使用正則表達式。 這將是模式: 「/.(\w+)$/」

這將是實現:

if (preg_match('/.(\w+)\/?$/', $file, $matches) { $extension = $matches[1]; } 
+1

如果'$ file ='http:// test.com /''(注意結尾的「/」)怎麼辦? –

+0

這只是爲了獲得延伸。分配擴展後,他會添加if(in_array())塊。 好吧,我已經添加了斜線部分。 謝謝。 –

+2

這裏真的沒有必要使用正則表達式。並且由OP發佈的代碼正在工作(修復了一個缺失的分號) – Jocelyn

1

你有一個失蹤 「;」

更正後的行。它應該工作正常。測試。 (後加入分號到第一線路)

$file = '/folder/subfolder/file.mp4'; 
相關問題