Написание новой линии в файл в PHP (линия Line)
Вопрос
Мой код:
$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
Спасибо.
Решение
Заменять '\n'
с участием "\n"
. Отказ Последовательность побега не распознается при использовании '
.
Увидеть руководство.
За вопрос о том, как записать концовки линии, см. Примечание здесь. Отказ В основном различные операционные системы имеют разные конвенции для концовок линии. Windows использует операционные системы « r n», используют операционные системы UNIX, используют « N». Вы должны придерживаться одной конвенции (я бы выбрал « N») и открою свой файл в двоичном режиме (fopen
Должен получить «WB», а не «W»).
Другие советы
Использовать PHP_EOL
какие выходы \r\n
или \n
в зависимости от ОС.
PHP_EOOL представляет собой предопределенную константу в PHP с PHP 4.3.10 и PHP 5.0.2. Увидеть руководство Размещение:
Использование этого сэкономит вам дополнительное кодирование на перекрестных разработках.
Т.е.
$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);
Если вы затерете это дважды, вы бы увидели в «quotefile»:
some data
some data
Вы также можете использовать file_put_contents()
:
file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);