2013-07-12 52 views
0

我正在製作一個將視頻轉碼爲不同格式的頁面。我的問題是,我想跳過MP4文件轉換爲MP4。所以我已經擴展了文件擴展名,並且很好地工作。我正在使用一個附加參數重命名我轉碼的文件 - 原始文件的擴展名。然而,當我嘗試創建一個像它一樣的測試時,它不會觸發。匹配PHP字符串的問題

if ($format != "mp4") 
{ 
    transcodeToMp4($file, $format); 
} 

這是行不通的。所以我一直在尋找解決這一替代方法:

if (strpos($format, "mp4") === FALSE) 
{ 
    transcodeToMp4($file, $format); 
} 

任何人有任何想法,爲什麼這將不火?儘管我在文件名中獲得了擴展名的正確字符串。

$format = strtolower(end(explode(".",$file))); 
+0

你的代碼我的系統上工作正常(也是你的第一次嘗試)。你確定'$ format'返回'mp4'嗎? – Pieter

+0

是的,我也發送'$ format'與'transcodeToMp4()'和新的名稱是像mov-123512351235.webm或mp4-123412351235.webm所以我知道$格式字符串是正確的。 – Tom

+0

你是否按以下順序工作:1.獲取帶有路徑的'$ file',2.查找'$ format',3.檢查'$ format == mp4',如果不是:4.使用函數'transcodeToMp4()' ? – Pieter

回答

1

更好地利用pathinfo得到延伸:

if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) != 'mp4') { 
    transcodeToMp4($file); 
} 
+0

Yay它工作。非常感謝! – Tom

0

嘗試使用此功能 的strstr($格式, 「MP4」)

+0

什麼都沒有:/ – Tom