高手帮看看我的代码,我想要用php提取内容的多个关键词加并全部加超链接,现在只加了一个超链

?phpheader("Content-type:text/html;charset=gb2312");$content='<divclass="recipeCatego... ?php
header("Content-type: text/html; charset=gb2312");
$content = '<div class="recipeCategory_sub_R">
<ul>
<li><span class="category_s1">韩式辣酱</span><span class="category_s2">(两勺)</span></li>
<li><span class="category_s1">韩式包饭酱</span><span class="category_s2">(两勺)</span></li>
<li><span class="category_s1">雪碧</span><span class="category_s2">(适量)</span></li>
<li><span class="category_s1">芝麻</span><span class="category_s2">(适量)</span></li>
<li><span class="category_s1">香油</span><span class="category_s2">(适量)</span></li>
<li><span class="category_s1">鸡精</span><span class="category_s2">(适量)</span></li>
<li><span class="category_s1">白糖</span><span class="category_s2">(适量)</span></li>
<li><span class="category_s1">大蒜</span><span class="category_s2">(半个)</span></li>
</ul>

</div>';
$preg = '/<span class=\"category_s1\">(.*)<\/span>/isU' ; //提取<span class="category_s1"></span>之间的内容
preg_match_all($preg, $content, $arr,PREG_PATTERN_ORDER);
foreach($arr[1] as $url){
$url=trim($url);
$str = preg_replace(
array(
'/'.$url.'/',
),
array(
'<a href=# >'.$url.'</a>',
),
$content,1);
}
echo $str;
?>
我写的代码输出只实现了一个关键词加超链,我想要全部关键词都用替换的形式加超链。
展开
 我来答
奥丁神王
2014-10-07 · TA获得超过357个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:393万
展开全部
问题出在preg_replace中的$content,你每次都替换一次源内容,没有累积的过程,所以只出现一个,
在preg_replace之前加

if (!isset($str))
$str = $content;
然后把preg_replace中的$content替换为$str.
追问
多谢了。已经解决了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式