RegEx从img标签获取src,width和height属性(在PHP中)

时间:2011-03-08 22:36:18

标签: php regex

我有一个随机的,长串的html代码(用户输入) - 我需要检查它的img标签和相应的宽度/高度,并用一串专有代码替换每个图像实例,例如

Hello world <img src="http://example.com/image.jpg" width="320" height="240" /> this is some random text <img src="http://example.com/cutepuppy.jpg" width="150" height="200" />

需要替换为

Hello world [img:http://example.com/image.jpg w:320 h:240] this is some random text [img:http://example.com/cutepuppy.jpg w:150 h:200]

2 个答案:

答案 0 :(得分:1)

你需要的正则表达式将是:

<img.*src=["'](.*)["'].*width=(\d+).*height=(\d+).*/>

然后我认为你可以使用正确的php函数替换(preg_replace我猜?)并使用\1等反向引用作为第一个匹配的括号,依此类推,以检索不同的值。

但HTML语法过于复杂,无法与regexp一起使用,就像您将在主题上的每个stackoverflow帖子上阅读一样。例如,如果您反转宽度和高度,此处的示例将不起作用。

我认为只要浏览SO,您就可以找到更好的问题解决方案。 (例如:SO

答案 1 :(得分:1)

它没有回答你的问题,但是不容易:

list($width, $height, $type, $attr) = getimagesize("http://example.com/image.jpg");

然后你不需要在标记中依赖有效的html。