来自 WordPress 项目的(简化)代码:
function fix_youtube_links ($content) {
$append = '&w=480&rel=0';
$content = preg_replace('/^http:\/\/(?:www\.)?(?:youtube.com\/(?:v\/|watch[\/\#?])|(youtu\.be\/)).*/im', '$0'.$append, $content);
return $content;
}
add_filter('the_content', 'fix_youtube_links');
$content
看起来像这样:
blah blah blah
http://www.youtube.com/watch?v=rUtdP3jQKUA
blah blah blah
我想添加$append
到比赛中并得到这个:
blah blah blah
http://www.youtube.com/watch?v=rUtdP3jQKUA&w=480&rel=0
blah blah blah
但相反,我得到了这个:
blah blah blah
http://www.youtube.com/watch?v=rUtdP3jQKUA
&w=480&rel=0
blah blah blah
...因为比赛中包含了行尾。
有什么建议么?欢迎使用正则表达式或非正则表达式解决方案。