我有以下html字符串示例。我想在裸体文本周围添加标签:
$html='<span>text1</span> text2 <a href="yahoo.com">yeahoo</a> text4 <div>abc</div> xyz';
假设格式正确的html我想在text2,text4和xyz周围添加一个标签(例如)。
我设想了一个名为$resHtml=addTagsToNakedText($html,'<span>','</span>');
最终结果应为:
'<span>text1</span><span> text2 </span><a href="yahoo.com">yeahoo</a><span> text4 </span><div>abc</div><span> xyz</span>'
任何想法如何做到这一点?我认为这需要一些正则表达式功能。
由于
答案 0 :(得分:0)
最好的办法是将字符串解析为可以使用DOM函数操作的HTML片段。如何做到这一点是留给读者的一个练习。
另一种方法是编写一个执行标记平衡的简单解析器,并知道何时包装文本。同样,这是读者的练习。
答案 1 :(得分:0)
另一个有趣的练习是解析文件中的每个字符,取消计数器。
但这意味着你有一个明确的编码风格,比如'&lt;'之间的空格。和'/'表示关闭标签。
答案 2 :(得分:0)
function tags($tag_open, $text, $tag_close) {<br />
return $tag_open.$text.$tag_close;<br />
}
$output_string = tags('< span >', 'Enter some text in here..', '< / span >');
答案 3 :(得分:0)
归功于:
强制性回答链接:stackoverflow.com/questions/1732348 / ... - 昨天的SimpleCoder
由于