【发布时间】:2011-12-07 20:28:04
【问题描述】:
我正在开发一个移动网络,其内容来自外部 XML,但我遇到了标签问题。它们带有样式属性,我认为在显示内容之前使用 php 中的 preg_replace 很容易将其删除。当在文本中找到 img 标记时,问题就出现了......类似于:"Hel<img .../>lo My name is Alfred<br/>"。如果我只是删除样式属性(通常带有 display:float),图像会破坏文本,使其难以阅读。
我的解决方案是: 使用 preg_replace,我“清理”所有图像标签,但是我需要获取这些标签并将它们放在下一个 <br/>、</p> 等之后(每个段落标签的结尾)。我认为它至少会使页面更具可读性和组织性。
问题:不知道如何获取每个img标签的索引,我刚清理完,然后找到下一段的结尾放在那里。
例子-->
之前:
Hell<img .../>o my name is Alfred.<br/>
<p>I come <img .../>from England</p>
之后:
Hello my name is Alfred<br/>
<img .../>
<p>I come from England</p>
<img .../>
提前致谢。
编辑---
我的疑问是:如果我在文本中找到了一个img标签(<img />)(可能使用preg_replace,因为我首先需要找到一个img标签,验证它的属性并在必要时更改它们),如何获取整个字符串中的索引(通过整个字符串,我的意思是整个 html 文档作为字符串读取),以便我可以获取整个标签并将其移动到段落的下一个结尾?
【问题讨论】:
-
使用
(.+?)代替...,你就得到了一个正则表达式。稍加努力,就可以在许多重复项中找到一些东西,例如php - Extracting from between two strings using regex,尽管最近许多正则表达式的答案都被搞砸了。 -
您好,感谢您的回复,但我并不是指正则表达式。我试图说图像标签可以在那里有任何东西(这实际上对我的怀疑并不重要)。我的疑问是:如果我在文本中找到一个 img 标签 (
<img />),我如何在整个字符串中获取索引,以便我可以获取整个标签并将其移动到段落的下一个结尾? -
您是一次替换一个段落还是整个文件?
标签: php preg-replace