dongyingdao8867 2014-12-12 23:57
浏览 70
已采纳

preg_replace无法正常工作

I am running the following code:

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

However I get no output, surely it would echo 'bla' but it doesn't show anything.

  • 写回答

2条回答 默认 最新

  • duanchen6423 2014-12-13 00:11
    关注

    PHP PCRE patterns do not support the g modifier, and as the manual states:

    Spaces and newlines are ignored in modifiers, other characters cause error.

    As an error is caused, preg_replace works as expected:

    If matches are found, the new subject will be returned, otherwise subject will be returned unchanged or NULL if an error occurred.

    You have probably disabled or suppressed warnings in your code, which you should never, ever do during development (and always in production). Check whether display_errors is enabled in your php.ini file, and/or whether you have any error_reporting(...) calls in your code.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?