0

この DomDocument php を書き直して、配列キーを適切な画像に割り当てるにはどうすればよいですか? 注:: $html または the_content 内の複数の画像。それぞれをループする必要があります。

これは、必要な配置を見つけるための正規表現です (CSS クラス名の align という単語の後の部分)。したがって、alignleft または alignright の CSS クラスに応じて、左または右のいずれかが必要です。

preg_match_all('#align(.*?)(" )#si', '<img class="classone twoclass alignLEFT" src="xxxx" />', $arr, PREG_PATTERN_ORDER);

注:: 常に alignleft になるとは限りません。aligncenter alignnone alignright またはその他のさまざまなクラス名の可能性があります。

各画像を循環し、見つかったものを実際に適切な画像に適用する方法がわかりません。

<?php

$html = '<img class="" src="xxxx" />adasdasdasd<img class="classone twoclass alignLEFT" src="xxxx" />';

$domdoc = new DOMDocument('');
$domdoc->loadHTML($html);

$xpath = new DOMXpath($domdoc);

$imgs = $xpath->query('//img');

foreach ($imgs as $element) {

    $class = $element->getAttribute('class');

    if (strpos($class, 'alignLEFT') !== false) {

        $element->setAttribute('align', 'left');
    }

}

// DOM Document works with full html documents, so now we have to isolate our fragment

$bodyelement = $xpath->query('/html/body');
$bodyhtml = $domdoc->saveXML($bodyelement->item(0));

echo str_replace(array('<body>', '</body>'), '', $bodyhtml);
4

0 に答える 0