1

私は Netbeans 7.3.1 を使用していますが、通常は Xdebug を使用して PHP ファイルを正常にデバッグできます。ただし、それは、サイトがすぐに PHP コードから生成されるようにサイト プロジェクトが構成されている場合に限られます。

現在、私は主に HTML ファイルで作成されたサイトを持っています。PHP によって生成されたものではない HTML スタティック。プロジェクト内の唯一の PHP ファイルはphphandler.php. その PHP ファイルをデバッグする必要がありますが、次のような HTML ファイル内からの Javascript/jQuery 呼び出しに応答してのみ実行されます。

$.post(siteURL + 'jsonhandler.php', {
                JSON: JSON.stringify(data)
            }, processResult, "json");

PHP 側では、JSON リクエストを処理します。$_POST

$Array = json_decode(stripslashes($_POST['JSON']), true);

JSON 内からデバッガーを実行すると、Chrome が開き、サイトが読み込まれますindex.htmlが、デバッガーは開きませんjsonhandler.php。すべてのリンクをたどって自分のサイトをナビゲートでき、必要なすべての JSON データを から取得できますjsonhandler.phpが、デバッガーは関与していません。

jsonhandler.phpJavascript が を介してリクエストを送信したときにデバッグできます$_POSTか?


更新:jsonhandler.php関数を使用してデバッグできることを発見しましたDebug Fileが、これには重大な欠点があります。つまりjsonhandler.php、サイトの残りの部分によって構築された JSON データを受信する状況を作成できないということです。手作りのテスト JSON データを手動で強制することはできますが、そうすると、システム全体が何を行っているかを発見する能力が著しく阻害されます。

とにかく、私にとってこれは、デバッグ環境が正しく構成されていることを示すもう 1 つの指標です。これは、デバッガーが正しいイベントをリッスンできるかどうか、およびどのようにリッスンできるかの問題です。

4

3 に答える 3

0

print_r($Array) に続いて exit() を実行することで、php ファイルで受け取った $Array を印刷してみることができます。これにより、php ファイルのプロセスが停止し、php ファイルに含まれる結果が表示される場合があります。これにより、$Array にロードされたときに php ファイルが何を取得しているかを確認できる場合があります。または、ajax リクエストの場合は、console.log(response) によってコンソールにレスポンスを出力できます。お役に立てば幸いです。

于 2013-09-19T07:05:53.840 に答える
0

最近、同様の質問に回答しました: https://stackoverflow.com/a/19636910/212076

基本的に、デバッガーをトリガーするには、JSON 内にクエリ パラメーターを追加する必要があります。

XDEBUG_SESSION_START=netbeans-xdebug

データが HTML フォームから直接取得されている場合は、次のように隠しフィールドを含めます。

<input type="hidden" name="XDEBUG_SESSION_START" value="netbeans-xdebug" />
于 2013-10-30T23:17:29.340 に答える