Вопрос

Мой код:

$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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top