Запись новой строки в файл на PHP
мой код:
$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
в виде строки, поэтому файл выглядит так:
40119n40122n40120n42155n36925n45881n42145n45880
из Google он говорит мне использовать rn
, а r
это возврат кареты, который, похоже, не то, что я хочу сделать. Я просто хочу, чтобы файл выглядел так:
40119
40122
40120
42155
36925
45881
42145
45880
спасибо.
4 ответов
заменить '\n'
с "\n"
. Escape-последовательность не распознается при использовании '
.
посмотреть руководство.
для вопроса о том, как написать окончание строки, см. Примечание здесь. В принципе, разные операционные системы имеют разные соглашения для линейных окончаний. Windows использует "\r\n", Unix-операционные системы используют"\n". Вы должны придерживаться одного соглашения (я выбрал "\n") и открыть файл в двоичном режиме (fopen
должны получить "wb", а не"w").
PHP_EOL является предопределенной константой в PHP с PHP 4.3.10 и PHP 5.0.2. Вижу руководство проводки:
использование этого сэкономит вам дополнительное кодирование на кросс-платформенных разработках.
IE.
$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);
Если вы пройдете через это дважды, вы увидите в "somefile":
some data
some data
вы также можете использовать file_put_contents()
:
file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);