Question

Mon code:

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

Pour une raison quelconque, il est écrit \n sous forme de chaîne, de sorte que les regards de fichiers comme ceci:

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

De Google'ing il me dit d'utiliser \r\n, mais \r est un retour chariot qui ne semble pas être ce que je veux faire. Je veux juste le fichier à ressembler à ceci:

40119
40122
40120
42155
36925
45881
42145
45880

Merci.

Était-ce utile?

La solution

Remplacer '\n' avec "\n". La séquence d'échappement n'est pas reconnu lorsque vous utilisez '.

Voir la manuel.

Pour la question de savoir comment écrire les fins de ligne, voir la note . Fondamentalement, différents systèmes d'exploitation ont des conventions pour les fins de ligne. Windows utilise "\ r \ n", les systèmes d'exploitation basés sur UNIX utilisent "\ n". Vous devriez en tenir à une convention (je choisi « \ n ») et ouvrez votre fichier en mode binaire (fopen devrait obtenir « wb », pas « w »).

Autres conseils

Utilisation PHP_EOL qui délivre en sortie \r\n ou \n en fonction du système d'exploitation.

PHP_EOL est une constante prédéfinie en PHP PHP depuis 4.3.10 et PHP 5.0.2. Voir l'affichage manuel :

En utilisant cela vous évitera de codage supplémentaire sur les développements multiplateformes.

IE.

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

Si vous bouclées ce que vous deux fois voir dans « somefile »:

some data
some data

Vous pouvez également utiliser file_put_contents() :

file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top