免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2781 | 回复: 6
打印 上一主题 下一主题

文章关键字替换的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-01 14:40 |只看该作者 |倒序浏览
请问大家个问题,上传个带HTML代码的文章,我想替换里面一些关键字,而又不导致文章乱,如何实现?举个例子吧:
比如我设置的关键字是:我们
代码是:<p>请我们帮助我们,谢谢大家</p><div><img src="http://www.help.com/logo.jpg" title="我们" alt="我们" /><br />请我们帮助我们</div>
将上面所有页面上显示的文字“我们”替换成<a href="url" target="_blank">我们</a>,但是html标签里面的文字不能被替换,否则页面就乱了,这里图片就显示不出来了!肯定的是用str_replace函数是不行的,用正则表达式如何去写呢?
高手们帮我解答,先谢谢大家了!

论坛徽章:
0
2 [报告]
发表于 2008-02-01 14:54 |只看该作者
正则跟实际环境有很大关系.你最好能列出实际的使用情况.帮你写完后可以基本不加修改的使用.

就你上面的例子来使用可以

preg_replace('/[^"]我们[^"]/','你们',$str)

论坛徽章:
0
3 [报告]
发表于 2008-02-01 15:12 |只看该作者
关键字是提交文章的时候用户自定义的,文章也是用户使用在线编辑器编辑的,所有都是动态的,我就是想请教个函数,是通用的函数:
//$article是文章内容,$keyword是输入的关键字文字
function keyword_replace($article,$keyword){

}
请问如何完成改函数?

论坛徽章:
0
4 [报告]
发表于 2008-02-01 15:15 |只看该作者
原帖由 carset 于 2008-2-1 14:54 发表
正则跟实际环境有很大关系.你最好能列出实际的使用情况.帮你写完后可以基本不加修改的使用.

就你上面的例子来使用可以

preg_replace('/[^"]我们[^"]/','你们',$str)


对了,可能有的用户上传的文章的HTML标签里包括关键字但是并没用引号怎么办比如<img src=url alt=关键字 />

论坛徽章:
0
5 [报告]
发表于 2008-02-01 15:19 |只看该作者
正则没有正真意义上通用的.

或者你可以用  alt= 跟 title= 来做限定条件.但没有通用的. alt=  就类似于上面的 引号 .

论坛徽章:
0
6 [报告]
发表于 2008-02-01 15:26 |只看该作者
这样不好吧,如果alt=后面跟了引号可以,如果没干引号呢?因为我也控制不了用户加不加引号呀,而且如果用户在其他的标签属性里也用了关键字,岂不是要吧所有的标签属性都要放到正则里面呢?

论坛徽章:
0
7 [报告]
发表于 2008-02-01 15:39 |只看该作者
$reg = '/[^(alt=)"?]我们/';

这个里面已经匹配了一个引号,或者没有引号. ? 没有或这一个.但不匹配多个..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP