2017-07-03 28 views
0

POSTリクエストからJavaScriptのスニペットを受信して​​います。ここでPHPでJavaScriptエンコードされた文字列をエスケープする

iCart.updateBlock($$('div.cart', 'div.layout-1column'), "<div class=\"cart\">\n\n <div class=\"page-title title-buttons\">\n  <h1>Basket<\/h1>\n 

はjavascriptのコードが呼び出しの間一貫している場合、私はおそらく基本的なPHPの文字列操作を使用してJavaScriptを取り除くことができ、例として(一部)です。それでは、私は

<div class=\"cart\">\n\n <div class=\"page-title title-buttons\">\n  <h1>Basket<\/h1>\n 

が、私は基本的にこのsite

  • 垂直タブが\に置き換えられ、\ tのに置き換えられ、逆

    • 水平タブで説明して何をやりたいのjavascriptエンコードされた文字列が残っていますV
    • のNUL文字は\ 0
    • バックスペースに置き換えられますが
    • bを\に置き換えられますフォームフィードが
    • 改行fを\に置き換えているが置き換えられ、\ nは
    • キャリッジリターンは
    • シングル引用符が\」
    • 二重引用符に置き換えられ、\ rを置き換えられ、\「
    • バックスラッシュに置き換えられます\

    これを行うPHP関数はありますか?私は特にこれを行うためのパーサーを書こうとは思わない。結果は

    <div class="cart"><div class="page-title title-buttons"><h1>Basket<\/h1> 
    

    返されるJavaScriptのスニペットを提供することができます。完全な文字列がリンクされたサイトを介して実行されると、エスケープされていないHTMLは完全で有効です。

  • 答えて

    0

    おそらくjson_encode()が必要な処理を行います。ただし、JSON文字列値を作成している間は、引用符を追加して追加します。私の目的のために

    0

    、これは

    $html = strtr($html, [ 
        "\t" => '', 
        "\v" => '', 
        "\n" => '', 
        "\\\\" => "\\", 
        "\\\"" => "\"", 
        "\'" => "'", 
        "\r" => '', 
        "\b" => '', 
        "\f" => '', 
        "\/" => '/', 
    ]); 
    
    十分でした
    関連する問題