php开发文章内链,替换规则的一个问题
做内链的方法,能想到的就是替换 设定好的内链词,比如把 “春节放假” 替换成 “2a80307af77734bf119ddca9d1a5f168春节放假5db79b134e9f6b82c0b36e0489ee08ed”,等,这种方式来的
但是事实可能并没有这么简单,因为发过来的文章往往都是带有html标签的,比如可能是“ab9ab1a393ba3439d2ac950fb5b0b51a春节54bdf357c58b8a65c66d7c19c8e4d114a4b561c25d9afb9ac8dc4d70affff419放假0d36329ec37a2cc24d42c7229b69747a”这种形式的,这样改怎么样来替换?
想了下可能有下边的集中可能
“春节45a2772a6b6107b401db3c9b82c049c2放假54bdf357c58b8a65c66d7c19c8e4d114” 这种是要替换的 ,成这样 “d77ae1ad7790a7548f4750ae4502212c春节45a2772a6b6107b401db3c9b82c049c2放假54bdf357c58b8a65c66d7c19c8e4d1145db79b134e9f6b82c0b36e0489ee08ed”
"8f8b10739a03ab187f7a49e4914961fb春节放假5db79b134e9f6b82c0b36e0489ee08ed" 这种直接形式的不替换
“3499910bf9dac5ae3c52d5ede738348545a2772a6b6107b401db3c9b82c049c2春节54bdf357c58b8a65c66d7c19c8e4d114放假5db79b134e9f6b82c0b36e0489ee08ed” 这种隔标签形式的也不替换
“3499910bf9dac5ae3c52d5ede7383485春节5db79b134e9f6b82c0b36e0489ee08ed放假” 这种部分词语有链接的不替换
。。。可能还有替他的情况
用语言描述下,“每一个分词都不带链接的情况下才替换,链接可能是直接链接也可能是隔标签链接”
然后替换成 “多个分词共同的最近父节点内部,替换成新加好链接的新形式”。
这种匹配规则和替换规则还咋写都?求助
$html = <<<html<br /> 这儿是茶叶的链接。<br /> <img src="中国好茶叶.jpg" width="120" height="120" alt="中国好茶叶" /><br /> <span title="中国好茶叶">中国茶叶</span><br /> 这儿是中国茶叶大观的链接。<br /> 这儿是<a href="原有的链接.html">茶叶</a>的现有链接<br /> html;<br /> echo preg_replace('#(?=[^>]*(?=<(?!/a>)<br><font color='#FF8000'>------解决方案--------------------</font><br>$))茶叶#','<a href="新加的链接.html">\0</a>',$html);得到