ホームページ  >  記事  >  バックエンド開発  >  PHP で `\n` を使用するときに `fwrite` が新しい行を作成しないのはなぜですか?

PHP で `\n` を使用するときに `fwrite` が新しい行を作成しないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 00:08:03596ブラウズ

Why does `fwrite` not create a new line when using `n` in PHP?

PHP でファイルに新しい行を書き込む (改行)

この問題は、「n」を指定して fwrite を使用して新しい行を書き込むときに発生します。行をファイルに追加すると、新しい行を作成する代わりに、「n」がファイル内の文字列として出力されます。

これを解決するには、「n」を「n」に置き換えるだけです。 ' (一重引用符) を使用すると、エスケープ シーケンスは認識されません。これは、' (一重引用符) がエスケープされていない文字列に使用され、'n' が文字 n を表す文字列リテラルとして扱われるためです。

たとえば、次のコードを考えてみましょう。

$file = fopen('ids.txt', 'w');
fwrite($file, $gem->getAttribute('id') . "\n");

このコードでは、改行文字として「n」が使用されており、ファイル内に確実に改行が作成されます。

rn (キャリッジリターンと改行) の使用については、通常はこれが使用されます。 Windows システムでは改行を表します。ただし、オペレーティング システム間で一貫して行末を書きたい場合は、すべてのオペレーティング システムで「n」を使用するなど、単一の規則を採用する必要があります。さらに、バイナリ モード (例: 「wb」を使用) でファイルを開くことをお勧めします。これにより、異なる規則を持つシステム間でファイルを転送するときに行末が正しく書き込まれます。

以上がPHP で `\n` を使用するときに `fwrite` が新しい行を作成しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。