PHP の改行の問題: 末尾の改行を克服する
「w」モードで fwrite() を使用して PHP でファイルに書き込む場合、予期しない改行文字が出力に追加されるのはよくあることです。これは、提供されたコードの場合であり、「n」は改行を作成することを意図していましたが、代わりに文字列として表示されました。
n のジレンマ
の理由この独特の動作は、使用されるエスケープ シーケンスにあります。デフォルトでは、一重引用符で囲まれた文字列は、「n」を改行文字ではなく、リテラルのバックスラッシュとその後に続く文字「n」として扱います。これを修正するには、二重引用符で囲まれた文字列を使用し、「n」を使用して改行文字を適切にエスケープする必要があります。
Windows および Unix の行末
考慮すべきもう 1 つの側面行末文字です。オペレーティング システムが異なれば、行末の規則も異なります。
適切な行末処理を確保するには、ファイルをバイナリで開くことをお勧めしますモードでは、行末変換を行わずに生データを書き込むことができます。これには、fopen() の 2 番目のパラメーターとして「wb」を使用することが含まれます。
更新されたコード:
これらの修正を実装することで、以下の変更されたコードは各 gem ID を正常に書き込みます。無関係な文字を含まない新しい行:
$i = 0; $file = fopen('ids.txt', 'wb'); foreach ($gemList as $gem) { fwrite($file, $gem->getAttribute('id') . "\n"); $gemIDs[$i] = $gem->getAttribute('id'); $i++; } fclose($file);
以上がPHP でファイルに書き込むときに末尾に改行が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。