我有一个示例代码html:
$text = '<img src="abc.jpg" alt="abc" /> abc def ghi abc xyz';
echo str_replace('abc', 'has replace', $text);
当我在标记<img/>
中使用回显结果时,将“abc
”替换为“has replace
”=&gt;错误
如何运行结果是:
<img src="abc.jpg" alt="abc" /> has replace def ghi has replace xyz
答案 0 :(得分:1)
我有一个想法:
$k=0;
$arr = array();
$regex = '/(<img.*?\/>)/ism';
if(preg_match_all($regex, $text, $tmp)) {
if(isset($tmp[0])) {
for($i = 0;$i < count($tmp[0]); $i++) {
$arr[0][$k] = $tmp[0][$i];
$arr[1][$k] = md5($tmp[0][$i]);
$text = str_replace($arr[0][$k], $arr[1][$k], $text);
$k++;
}
}
}
然后你可以替换:
echo str_replace('abc', 'has replace', $text);
结果现在是: $ text ='74d3ae3af91872413da1db45d88ddd4a abc def ghi abc xyz'; // img已经是md5
最后你可以:
for($i = 0;$i < $k; $i++) {
$text = str_replace($arr[1][$i], $arr[0][$i], $text);
}
希望你能成功