Php probleme avec explode

Résolu/Fermé
chang - 15 nov. 2010 à 11:15
 chang - 16 nov. 2010 à 19:52
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 nov. 2010 à 12:11
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
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
16 nov. 2010 à 10:21
À 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
merci bien bas Xavier, j'adore comprendre le pourquoi du comment
0
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
16 nov. 2010 à 10:21
Ça c'est étrange. Il y a peut-être une configuration du php.ini, mais j'en doute...
0