我用这个
获得所有图像preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui' , $content , $matches);
这就是我阻止所有图像的方法,如果它有一个“坏词”
'/(list|of|bad|words)/i'
如何组合它们并将结果保存在变量而不是print_r中? 我的目的是从内容中删除所有这些图像并生成“干净”的内容。
谢谢!
答案 0 :(得分:2)
可能最快的方法是运行第一个正则表达式,然后过滤掉坏的正则表达式。你很可能很容易通过回调来做到这一点。我不会尝试将正则表达式结合起来。
答案 1 :(得分:0)
可能需要进行一些调整,具体取决于$content
的格式:
<?php
$content = 'http://www.example.com/images/image001.jpg
http://www.example.com/images/image002.jpeg
http://www.example.com/images/list001.jpg
http://www.example.com/images/image003.png
http://www.example.com/images/bad002.png
http://www.example.com/images/image004.gif
http://www.example.com/images/words003.jpg';
preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui', $content, $matches);
preg_match_all('/\S+(list|of|bad|words)\S+/i', $content, $bads);
$filtered = array_values(array_diff($matches[0], $bads[0]));
print_r($filtered);
?>
<强>输出:强>
Array
(
[0] => http://www.example.com/images/image001.jpg
[1] => http://www.example.com/images/image002.jpeg
[2] => http://www.example.com/images/image003.png
[3] => http://www.example.com/images/image004.gif
)