我正在运行以下代码:
$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',但它没有显示任何内容。
答案 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(...)
次调用。