2010-09-29 83 views
0

我有很多在我的服務器視頻,我用下面的代碼來獲取視頻的時長,它工作正常..如何讀取名稱中包含空格和特殊字符的文件?

 ob_start(); 
     passthru("ffmpeg -i ".$srcfile." 2>&1"); 
     $duration = ob_get_contents(); 
     ob_end_clean(); 

,但我無法得到持續時間具有空間的文件或任何特殊字符,如('#%等...

我不能重命名文件,因爲它已經存儲和這些文件的名稱也存儲在數據庫中,這將需要付費更改生活中的所有site ..

那麼有什麼方法可以訪問/讀取帶有特殊字符的文件嗎?

+1

您應該使用['popen方法()'](http://php.net/popen),而不是用'ob_start瞎()'。 – caf 2010-09-30 06:28:47

回答

3

escapeshellarg

順便說一句,你應該始終使用這對於任何shell變量,少你想使你的應用程序中打開殼注入攻擊,這可能是非常危險。

0

報價單引號之間的文件名:

passthru("ffmpeg -i '".$srcfile."' 2>&1"); 
+2

壞主意。如果$ srcfile包含單引號字符會怎麼樣? – telent 2010-09-29 10:07:48

相關問題