0

私は次のような文字列を持っています

   <p><img alt="twerk team" class="pyro-image" src="http://localhost/test/files/thumb/8/595" style="float: none;" /></p>

その中に新しい文字列を追加したいもの

<p><img alt="twerk team" class="pyro-image" src="http://localhost/test/files/thumb/8/595/test_image.jpg" style="float: none;" /></p>

DOMDocumentとSimpleHTMLパーサーを試しましたが、同じことができません。ご覧ください。

4

1 に答える 1

1

これは、クラスが。の各画像要素/test_image.jpgのに追加されます。srcpyro-image

デモ

$html = '<p><img alt="twerk team" class="pyro-image" src="http://localhost/test/files/thumb/8/595" style="float: none;" /></p>';

$d = new DOMDocument();
$d->loadHTML($html);

$xp = new DomXPath($d);
$class = 'pyro-image';
$nodes = $xp->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $class ')]");

foreach($nodes as $n)
{
    $n->setAttribute('src', (string)$n->getAttribute('src') . '/test_image.jpg');
    echo $d->saveXML($n->parentNode);

    // note - can use saveHTML() instead but only from PHP 5.3.6
}

出力

<p><img alt="twerk team" class="pyro-image" src="http://localhost/test/files/thumb/8/595/test_image.jpg" style="float: none;"/></p>
于 2012-12-11T10:56:28.497 に答える