123

私のコード:

$i = 0;
$file = fopen('ids.txt', 'w');
foreach ($gemList as $gem)
{
    fwrite($file, $gem->getAttribute('id') . '\n');
    $gemIDs[$i] = $gem->getAttribute('id');
    $i++;
}
fclose($file);

何らかの理由で\n文字列として書き込んでいるため、ファイルは次のようになります。

40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880

Google'ing から、 を使用するように指示されます\r\nが、\r私がやりたいこととは思えないキャリッジ リターンです。ファイルを次のようにしたいだけです:

40119
40122
40120
42155
36925
45881
42145
45880

ありがとう。

4

4 に答える 4

305

に置き換え'\n'ます"\n"。を使用すると、エスケープ シーケンスが認識されません'

マニュアルを参照してください。

行末の書き方の質問については、こちらの注意書きを参照してください。基本的に、オペレーティング システムが異なれば、改行の規則も異なります。Windows は「\r\n」を使用し、UNIX ベースのオペレーティング システムは「\n」を使用します。1 つの規則 (私は "\n" を選びました) に固執し、ファイルをバイナリ モードで開く必要があります ( fopen"w" ではなく "wb" を取得する必要があります)。

于 2010-06-18T00:00:58.237 に答える
72

PHP_EOLどの出力を使用する\r\n\n、OS に応じて使用します。

于 2011-09-16T19:58:49.667 に答える
69

PHP_EOL は、PHP 4.3.10 および PHP 5.0.2 以降の PHP で定義済みの定数です。マニュアルの投稿を参照してください。

これを使用すると、クロスプラットフォーム開発で余分なコーディングを節約できます。

すなわち。

$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);

これを 2 回ループすると、「somefile」に次のように表示されます。

some data
some data
于 2013-02-17T21:29:02.633 に答える
38

次のものも使用できますfile_put_contents()

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);
于 2010-06-18T02:02:56.817 に答える