Php probleme avec explode

Résolu
chang -  
 chang -
Bonjour,

j'ai un script qui fonctionne très bien en local mais plus une fois en ligne. après avoir testé pas à pas, je m'aperçois que c'est explode("\r\n",$chaine) qui ne fonctionne pas en ligne. je lis dans un fichier txt, j'avais jusqu'ici l'habitude d'utiliser cette fonction de cette façon. avez-vous une idée ? à part terminer toutes les lignes par un séparateur alphanumérique ?

merci.

A voir également:

3 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Si ton site est hébergé sur un serveur Unix / Linux, les séparateurs de ligne ne seront pas des \r\n, mais des \n seuls.
Donc il faut utiliser explode("\n",$chaine);
Si tu veux que ton script fonctionne quel que soit le serveur (linux ou windows), je te suggère même de convertir les \r\n en \n au moment de l'explode :
explode("\n",str_replace("\r\n", "\n", $chaine));

Par contre, si ton fichier est volumineux, cela peut gréver les performances. À toi de voir en fonction de tes besoins.

Xavier
1
chang
 
merci beaucoup, à tâtons c'est ce que j'avais fini par trouver et je venais pour porter la réponse. je retiens ton conseil, mes fichiers ne sont pas volumineux en général. par contre, juste pour comprendre : j'ai toujours fait comme ça (en local ou en ligne) et ça marchait jusqu'ici, comment cela se fait-il ? je suis sur free.
merci encore
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
À mon avis, cela dépend aussi de la machine sur laquelle tu as créé et/ou modifié le fichier.
Si tu crées le fichier sous windows, puis le mets en ligne sur un serveur linux, il restera en \r\n.
Par contre, si tu crées le fichier en ligne (via un script php par exemple), il sera plus vraisemblablement au format linux.
0
chang
 
merci bien bas Xavier, j'adore comprendre le pourquoi du comment
0
chang
 
au fait j'ai aussi noté que les " étaient obligatoires, impossible d'utiliser des simples '. pourtant ça fonctionnait aussi auparavant avec des ' (??).
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Ça c'est étrange. Il y a peut-être une configuration du php.ini, mais j'en doute...
0