preg_replace无法正常工作

时间:2014-12-12 23:57:48

标签: php preg-replace output echo

我正在运行以下代码:

$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);

但是我没有输出,肯定会回应'bla',但它没有显示任何内容。

2 个答案:

答案 0 :(得分:2)

该代码为我提供了Warning: preg_replace(): Unknown modifier 'g' in /home/abe/http/htdocs/tmp/test.php on line 3。如果我删除尾随g,则可以正常工作。

答案 1 :(得分:2)

PHP PCRE模式不支持g修饰符and as the manual states

  

修饰符中会忽略空格和换行符,其他字符会导致错误。

由于导致错误,preg_replace works as expected

  

如果找到匹配项,将返回新主题,否则如果发生错误,主题将不会更改或NULL。

您可能在代码中禁用或禁止了警告,在开发期间(并且始终在生产中)您永远不应该这样做。检查您的php.ini文件中是否启用了display_errors,和/或您的代码中是否有error_reporting(...)次调用。