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 écrit \n
sous forme de chaîne, le fichier ressemble donc à ceci:
40119\n40122\n40120\n42155\n36925\n45881\n42145\n45880
D'après Google, il me dit d'utiliser \r\n
, mais \r
est un retour à la ligne qui ne semble pas être ce que je veux faire. Je veux juste que le fichier ressemble à ceci:
40119
40122
40120
42155
36925
45881
42145
45880
Merci.
Remplacez '\n'
par "\n"
. La séquence d'échappement n'est pas reconnue lorsque vous utilisez '
.
Voir le manuel .
Pour savoir comment écrire les fins de ligne, voir la note ici . Fondamentalement, différents systèmes d'exploitation ont des conventions différentes pour les fins de ligne. Windows utilise "\ r\n", les systèmes d'exploitation basés sur Unix utilisent "\ n". Vous devriez vous en tenir à une convention (j'avais choisi "\ n") et ouvrir votre fichier en mode binaire (fopen
devrait avoir "wb", pas "w").
Utilisez PHP_EOL
pour obtenir \r\n
ou \n
en fonction du système d'exploitation.
PHP_EOL est une constante prédéfinie dans PHP puisque PHP 4.3.10 et PHP 5.0.2. Voir le manuel affichage:
En utilisant cela, vous éviterez un codage supplémentaire sur les développements multi-plateformes.
C'EST À DIRE.
$data = 'some data'.PHP_EOL;
$fp = fopen('somefile', 'a');
fwrite($fp, $data);
Si vous parcouriez cela deux fois, vous verriez dans 'un fichier':
some data
some data
Vous pouvez également utiliser file_put_contents()
:
file_put_contents('ids.txt', implode("\n", $gemList) . "\n", FILE_APPEND);