編集:PHP HTMLDomDocumentgetElementByIdの問題に関連
仕事に就けませんgetElementById()
。W3Cバリデーターの使用によれば、ドキュメントは有効です。さらに、私のコードは少し無効なHTMLでも機能するはずです。
この単純なコードは、画像を検索し、その属性を別id="banner"
の属性に置き換えます。src
私の開発マシン(Windows)で動作しますが、サーバー(Ubuntu)では動作しません。
なしでこれを行う方法のアイデアはありますgetElementById()
か?
libxml_use_internal_errors(true);
// Create the DOMDocument and get the HTML content
$document = new \DOMDocument();
// Load HTML string and if it fails just return the content itself
if(false === $document->loadHTML($content)) return $content;
// Get DOMElement of the image with id="banner"
$img = $document->getElementById('banner');
// Return the content if it can't find the image
if(null === $img) return $content;
// Get image parent and remove the banner from DOM
$parent = $img->parentNode;
$parent->removeChild($img);
// Set the new src attribute
$img->setAttribute('src', 'http://mysite.come/img/myimage.png');
// Append the modified node to banner parent
$parent->appendChild($img);
return $document->saveHTML();