preg_match_all匹配后的各个结果如何再进行统一替换?

来源:百度知道 编辑:UC知道 时间:2024/06/16 22:30:54
preg_match_all('/ <span id="thread_(.+?) <\/a> <\/span>/',$fp,$out);
foreach ($out[0] as $links)
$links = preg_replace('/ <span id="thread_(.+?)>/', '', $links);
$links = str_replace(' </span>','',$links);
echo $links.' <br>';

效果是只显示了用preg_match_all匹配的所有结果中最后一个结果!当然它删除了 <span>标签,而它前面的那些结果都没显示!仿佛是还应该有个foreach,但我不会写了!老大们给解一下!

呵呵,看看你的foreach是不是缺东西啦?
你把它的大括号给弄丢了,所以你的foreach在偷懒呢:)

preg_match_all('/ <span id="thread_(.+?) <\/a> <\/span>/',$fp,$out);
foreach ($out[0] as $links) { //看这里
$links = preg_replace('/ <span id="thread_(.+?)>/', '', $links);
$links = str_replace(' </span>','',$links);
echo $links.' <br>';
} //再看这里