こんにちは、私はすべてのiframeとのimgタグを置き換えるために、このメソッドを使用していPHPのDOMDocumentも、要素spanタグと
$string = clean($string);
$dom = new \DOMDocument;
$dom->loadHTML(mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$iframes = $dom->getElementsByTagName('iframe');
foreach($iframes as $iframe) {
$src = $iframe->getAttribute('src');
$span = $dom->createElement('span');
$span->setAttribute('title', $src);
$span->setAttribute('class', 'lazy-youtube');
$iframe->parentNode->replaceChild($span, $iframe);
}
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
$src = $image->getAttribute('src');
$span = $dom->createElement('span');
$span->setAttribute('title', $src);
$span->setAttribute('class', 'lazy-image');
$image->parentNode->replaceChild($span, $image);
}
$html = $dom->saveHTML();
return clean($html);
をスキップしますが、問題は、それがこの
// Iframe
<span>
<iframe>
<span>
<iframe>
<span>
<iframe>
<span>
<iframe>
// Img
<span>
<img>
<span>
<img>
<span>
<img>
<span>
<img>
のように常にだ要素をスキップしていることですiframe用のHTML
<div class="content">
<p>
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/T6kG5vuPVSs?rel=0" width="560"></iframe>
<p>
</p>
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/GjnadPBMJGs?rel=0" width="560"></iframe>
<p>
</p>
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/KYm8SLLQ0kk?rel=0" width="560"></iframe>
<p>
</p>
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/xUVz4nRmxn4?rel=0" width="560"></iframe>
<p>
</p>
<iframe frameborder="0" height="315" src="https://www.youtube.com/embed/hmZ6ziQJByY?rel=0" width="560"></iframe>
</p>
</div>
すべての同じタイプの要素は同じ属性を持ち、srcだけが異なります。誰もがすべての要素を置き換えるためにそれを修正する方法を知っていますか?問題の
おそらくあなたが要素を置き換えると、配列/オブジェクトが変化し、残りを1つの場所に移動し、次のものをスキップします。だからこそ私はスキップしていると思う。 – FirstOne
@FirstOneとこれをどのように修正できますか? – allyfai
@FirstOne Imこのメソッドを使用してデータベースにhtmlを保存すると効率的ではありません。いつもうまくいかず、レンダリングに時間がかかりますか? – allyfai