如何在给定字符串中搜索HTML标记?

时间:2012-07-24 15:39:03

标签: php arrays string replace html-parsing

我知道这看起来很简单,但我对如何完成这项任务感到难过。

我需要从数组键/值中删除所有HTML IMG标记,然后将这些删除的HTML IMG标记移回到同一个数组中,这次使用它自己的单独数组键。

示例:

$array = array(
    'content' => '<img src="http://www.domain.com/images/img.png" width="100" height="100" alt="" />here is some content that might also be in this string.'
);

$array = array(
    'content' => 'here is some content that might also be in this string.',
    'image' => '<img src="http://www.domain.com/images/img.png" width="100" height="100" alt="" />'
);

HTML IMG标记和字符串中的其余文本将始终不同。内容永远不会完全相同,所以我真的不知道如何去做。我在考虑explode()str_replace()

1 个答案:

答案 0 :(得分:1)

你需要一个正则表达式。类似的东西:

$pattern = '#<img(.*)/>#U'; // note need to use ungreedy match here.';
$number_of_matches = preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);

这将告诉你匹配的数量,以及匹配的信息(包括匹配的字符串和匹配字符串的偏移量,用于从原始字符串中删除内容)