41 votos

La escritura de una nueva línea al archivo en PHP

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, la escritura \n como una cadena, por lo que el archivo tiene este aspecto:

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

Desde Google ing me dice que el uso de \r\n, pero \r es un retorno de carro que no parece ser lo que yo quiero hacer. Sólo quiero que el archivo este aspecto:

40119
40122
40120
42155
36925
45881
42145
45880

Gracias.

137voto

Artefacto Puntos 50896

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

Consulte el manual.

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 los finales de línea. Windows utiliza "\r\n", sistemas operativos basados en unix usar "\n". Usted debe adherirse a una convención (yo había elegido "\n") y abrir el archivo en modo binario (fopen debe conseguir "wb", no "w").

34voto

Aldarien Puntos 201

Uso PHP_EOL que las salidas \r\n o \n dependiendo del sistema operativo.

22voto

user1649798 Puntos 148

PHP_EOL es una constante predefinida en PHP desde PHP 4.3.10 y PHP 5.0.2. Consulte el manual de publicación:

Usando esto le ahorrará codificación adicional sobre la plataforma de la evolución.

Es decir.

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

Si en bucle a través de este dos veces que iba a ver en 'somefile':

some data
some data

13voto

Alix Axel Puntos 63455

También puede utilizar file_put_contents():

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X