0

私は問題があります。PHP ファイルが 500 エラーを返します。何が問題なのか理解できません。PHP エラー メッセージは次のとおりです。

致命的なエラー: キャッチされない例外 'DOMException' とメッセージ 'Not Found Error'

コードは以下のとおりです。

$dom = new domDocument;
$dom->preserveWhiteSpace = false;
$dom->loadHTML($cont);

$links  = $dom->getElementsByTagName('a');
$images = $dom->getElementsByTagName('img');
$divs   = $dom->getElementsByTagName('div');

foreach ($links as $link)
{
    $link->setAttribute('target','_blank');
}

foreach ($images as $image)
{
    $image->setAttribute('style','max-width:405px');
}

foreach ($divs as $div)
{
    $pnode = $dom->createElement('p', $div->nodeValue);
    $dom->replaceChild($pnode, $div); //the problem string
}

更新: 問題の文字列がコメント化されている場合、エラーはありません。

4

2 に答える 2

0

コードは問題ないようです。でDOM/XMLphp拡張機能が有効になっているかどうかを確認してくださいphpinfo();。追加

ini_set('display_errors', 1);
error_reporting(E_ALL);

コードに追加するか、.htaccessに表示されるphpエラーを有効にします。

于 2012-11-09T16:26:33.437 に答える
0

air4xに感謝します。

replaceChildren は 1 つのレベルだけを検索します。私の状況では、ルート内の要素を探していました。

解決策は次のとおりです。

 $div->parentNode->replaceChild($pnode, $div);
于 2012-11-09T17:10:49.037 に答える