0

Phpquerydomパーサーがjavascriptタグ内のコンテンツを変更します。次のコードを使用します

$pq         = phpQuery::newDocument($html);//$html -> grab the page using curl
echo $pq->html();

実際のブラウザページビューソース

<script type="text/javascript">
    $('#div-id').append(
           '<div class="tool">'
                +'<div class="t1"></div>'
                +'<div class="t2"></div>'
           +'</div>'
   );
</script>

phpquerydomを使用した後

<script type="text/javascript">
        $('#div-id').append(
               '<div class="tool">'
                    +'<div class="t1"></script>
</div>'
                    +'<div class="t2"></div>'
               +'</div>'
       );
    </script>

追加の終了スクリプトタグは、domパーサーを挿入しています。この問題を解決する方法を教えてください。前もって感謝します

4

2 に答える 2

0

これがあなたの質問に完全に答えるかどうかはわかりません。バグのようですが、これが私が見つけたものです:

html()このように呼び出すと$pq->html()、次のようになります

<script type="text/javascript">
    $('#div-id').append(
           '<div class="tool">'
                +'<div class="t1"/>'
                +'<div class="t2"/>'
           +'</div>'
   );
</script>

しかし、私がこれを行うと:

foreach($pq->find('script') as $script){
    echo pq($script)->html();
}

正しいhtmlを取得します

$('something else').append(
       '<div class="tool">'
            +'<div class="t1"></div>'
            +'<div class="t2"></div>'
       +'</div>'
);

バグだと思うので報告します。これについて何か聞いたらお知らせします。

于 2013-01-08T03:53:30.067 に答える