4

2つのページの間に矛盾があります.PHPは変数をダンプしているので、HTMLレンダリングが変数に含まれている可能性のあるものをレンダリングせずに、変数の生データを表示できる必要があります。

レンダリング後のバージョンは100%同一ですが、文字列とhash_hmacを取得すると、異なるハッシュが生成されます。

これらの文字列をダンプして生データを表示する方法はありますか?

4

4 に答える 4

5

いくつかのオプションが思い浮かびます。また

  • 送信header('Content-Type: text/plain');
  • <pre>または、ダンプを要素でラップします。
  • または、生の出力も含まれるソースコードを調べてください。

xdiffにも興味があるかもしれません。

于 2012-10-08T09:32:48.293 に答える
2

PHPで関数を試してくださいstrip_tagsこれはすべてのタグを削除します

また

これを使って

header('Content-Type: text/plain');
于 2012-10-08T09:32:44.317 に答える
0

この関数を使用して、配列の値を画面に出力します。

function PrintArray($array)
{
    echo " <pre>";
    print_r($array);
    echo " </pre> ";
}

たとえば、投稿されたデータにアクセスするには、次のようにします。

if ($submit)
{
  if ($debug)
  {
    printarray($_POST);
  }
}

残りのスクリプト データ (マークアップによってすぐに表示されないもの) は、$debug 条件ステートメントでファイルにエコー/出力する必要があります。

問題が発生する可能性がある場合は、デバッグ ステートメントを含めるようにアプリをビルドする必要があります。ページの上部で $debug = true; と宣言します。(または、使用しない場合は false に設定します)。

編集:

ところで、私の環境では、スクリプトが本番環境から提供される場合 (プログラムで検出される場合)、デバッグ ステートメントはオフになります。$debug が true に設定されている場合にのみ、テストで表示できます。コメンターが以下に書いているように、本番/ライブアプリケーションにデバッグ情報を表示する (または誤って許可する) べきではありません。

Web ルートの下にあるファイルにデバッグ情報を書き込むことをお勧めします。

于 2012-10-08T10:30:26.623 に答える
0

それはうまくいきません、私は試しました。私は Amazon FPS システムを作成していましたが、署名を行うための投稿リクエストで新しい行をハードレンダリングしたため、署名が無効でした。私が構築したシステムにはスペースがありました。これを投稿した後、結果をデータベースにダンプし、データベースに改行があると言いました。

回答: 文字列を取得して、データベースにダンプします。次に、データベースを使用して違いを確認します。これが私の問題を解決する唯一の方法でした。

于 2012-10-08T09:40:09.953 に答える