2014-12-12 43 views
1

我運行下面的代碼:的preg_replace心不是工作

$filename = 'bla.mp4'; 
    echo preg_replace('/\.(m4a|wav|ogg|flac|avi|flv|mov|wmv|m3u|mid|wma|webm|mkv|asf|mp(\d+)|aif(?:f?)|3gp(?:p?)|mp(eg(\d+)?|g(\d+)?))/g', '', $filename); 

但是我沒有得到任何輸出,它肯定將回聲「喇嘛」,但它並不顯示任何內容。

回答

2

PHP PCRE模式不支持g修改,and as the manual states

空間和換行符修飾符被忽略,其它字符會導致錯誤。

爲錯誤造成的,preg_replace works as expected

如果找到匹配,新的主題將被退回,否則主題將原樣返回或NULL,如果發生錯誤。

您可能已禁用或禁止了代碼中的警告,在開發過程中(並且始終處於生產狀態),您應該永遠不會執行這些警告。檢查您的php.ini文件中是否已啓用display_errors,以及/或者您的代碼中是否有任何error_reporting(...)調用。

2

該代碼給我Warning: preg_replace(): Unknown modifier 'g' in /home/abe/http/htdocs/tmp/test.php on line 3。如果我刪除尾部g,可以正常工作。