Pregunta

Mi código:

$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);

Por alguna razón, se está escribiendo \n como una cadena, por lo que las miradas de archivo como este:

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

De Google'ing que me indica que utilice \r\n, pero \r es un retorno de carro que no parece ser lo que quiero hacer. Sólo quiero que el archivo a tener este aspecto:

40119
40122
40120
42155
36925
45881
42145
45880

Gracias.

¿Fue útil?

Solución

Reemplazar '\n' con "\n". La secuencia de escape no se reconoce cuando se utiliza '.

Vea la manual de .

Para la pregunta de cómo escribir los finales de línea, ver la nota aquí . Básicamente, los diferentes sistemas operativos tienen diferentes convenciones para finales de línea. Windows utiliza "\ r \ n", los sistemas operativos basados ??en Unix utilice "\ n". Se debe adherir a una convención (yo elegí "\ n") y abra el archivo en modo binario (fopen debe recibir "wb", no "w").

Otros consejos

Uso PHP_EOL que emite \r\n o \n función del sistema operativo.

También puede utilizar file_put_contents() :

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top