2016-06-15 4 views
1

一部だけをスラッシュ削除:PHPはDomDocument-> saveHTMLは私を混乱させる

<?php 
echo "Start\n"; 
$newdoc = new DOMDocument(); 
$newdoc->loadHTML("<script>document.write('</scr' + 'ipt>');</script>");  
echo $newdoc->saveHTML(); 
echo "\nDone\n"; 

それが出力されます:

<script>document.write('' + 'ipt>');</script> 

なぜそれはそれを行うんし、どのように私はそれを避けることができますか?

答えて

1

あなたはスラッシュをエスケープする必要があります。

$newdoc->loadHTML("<script>document.write('<\/scr' + 'ipt>');</script>");

+0

バックスラッシュが結果に残ります。 – revo

+0

@revoこれで正確に達成しようとしていることは何ですか? – TheFallen

+0

私は何かを達成するつもりはありませんが、あなたは私がすでにコメントしたことに留意すべきでした。また、大規模なHTML入力の中でそのようなエスケープを行うことはできませんので、完全に一時的な解決策です。 – revo

関連する問題