4

私はこの問題の解決策を見つけようとして、過去数時間を費やして髪を引っ張ってきました. 私はAJAXリクエストを送信していますが、いくつかのマイナーな変更までは完全に機能し、Javascriptに素敵な使用可能な文字を返しました。しかし、現在 \r\n が返されており、追跡に非常に長い時間を費やしました。それが含まれている場所を見つけるための最後の方法は、HTML の 1 行目ではなく 2 行目に表示されるまで、スクリプトのさまざまな場所で文字通り「OMG」をエコーすることでした。問題のスクリプトは次のとおりです。

// Import Global Game Variables
include('../engine/engine_core_functions.php');

// Convert our gamestate(gameID)
//$curGamestate = getCurrentGamestate($gameID);

// Make sure it's a valid turn
if(isMyTurn()) {
    // Draw a card from the card drawing mechanism
    $cardValue = drawCard();
    $cardValue = str_replace("\r", 'R', $cardValue);
    echo $cardValue;
}
else echo 'Error 3';

先頭のインクルード ファイルの直後に行スキップが発生します。インクルード前は改行なし、インクルード後は改行。だから私はインクルードファイルに行きます。私の配置

echo 'OMG!';

インクルードされたファイルの VERY END で改行を生成しません。これにより、ファイルを含めると(なぜ!?)改行が発生する可能性があると信じるようになりました(午前5時です...)。ただし、問題のインクルード ファイルの先頭に複数のインクルード ファイルがあります。それらのどれもブレークを生成しません。「engine_core_functions.php」全体で改行がまったく発生しません。

ただし、上記のスクリプトにブレークが含まれていると、ブレークが表示されます。言うまでもなく、私は当惑し、非常にイライラしています。問題のある文字を (PHP または Javascript を介して) 単純に削除することはできますが、問題の根本を解決できないようで、イライラします。助けてください、ありがとう。

4

1 に答える 1

3

ファイルの先頭などに、ある種の目に見えない BOM マークを付けることができます。PHP ファイルの最初の文字列は常に let<?またはbe にしてください。別のファイルに含まれる場合<?phpは、PHP ファイル全体を終了しないようにしてください。?>

于 2013-02-19T10:41:32.127 に答える