如何获取img标签而不用DOMDocument :: saveHTML从字符串中更改它?

时间:2016-03-29 03:22:02

标签: php domdocument

我的字符串如下:

...。すっきりと整理され...のです。<br /><br /><img src="/photo/images/2016/03/25/0_3316.jpg" alt="漢字漢字漢字" /><br /><br />「あのと...

我正试图通过DOMDocument :: saveHTML获取img标签:

$topic_conv = mb_convert_encoding(htmlspecialchars_decode($topic['Topic']['body']), 'HTML-ENTITIES', 'UTF-8');
$doc->loadHTML($topic_conv);
$img_tags = $doc->getElementsByTagName('img');
foreach ($img_tags as $tag) {
    $img_alt = $tag->getAttribute('alt');
    if (empty($img_alt)) continue;
    $img = $doc->saveHTML($tag);
    var_dump($img);
    str_replace($img, $img . "<span style='{$img_style_caption}'>" . $img_alt . "</span>", htmlspecialchars_decode($topic['Topic']['body'])));
}

输出为:<img src="/photo/images/2016/03/25/0_3316.jpg" alt="漢字漢字漢字">

它与原始字符串不同 - 在结束括号之前没有空格和/,它应该有/>而不是>。 我的下一行代码 str_replace 不起作用,因为它不匹配。

也许,有人知道我怎样才能获得原始字符串中的img标签?

1 个答案:

答案 0 :(得分:0)

如果您仍然需要它,请尝试这样:

str_replace($img, $img . "<span style='{$img_style_caption}'>" . $img_alt . " /" . "</span>", htmlspecialchars_decode($topic['Topic']['body'])));

PS:代码来自我的头脑(未经测试)。如果有任何问题,请告诉我......