Remplacer un saut de ligne par espace

noob
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 14:00

Voila, j'essaie de générer un fichier Excel à partir des données de ma BD. La problème, c'est que les champs qui contiennent un saut de ligne affiche caractère bizarre(un carré) dans excel.
J'ai essayé de remplacer les sauts de ligne par des espaces avec:
str_replace('\\n',' ',$variable); 
mais ca ne change rien...

Est que mon str_replace est correct?

Mammouth du PHP | 19672 Messages

20 mai 2005, 14:02

essaye sans doubler l'anti-slash:
str_replace('\n',' ',$variable);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

noob
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 14:09

Meme résultat sans doubler l'anti slash...

noob
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 14:41

J'ai essayé avec la fonction strtr(), mais les sauts de ligne ne sont pas remplacés... Le serveur est sous Windows, donc les sauts de ligne sont bien "\n", nan?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 mai 2005, 14:43

Il me semble, mais je suis pas sûr, que sous Windows, le saut de ligne, c'est \r\n.

Même si certaines fonctions remplacent automatiquement \n par \r\n

La signification, c'est "retour chariot" puis "saut de ligne"
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 14:57

Je viens d'essayer en changeant \n par \r\n, ou \\r\\n, mais il m'affaiche toujours des caractères spéciaux...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 mai 2005, 15:02

Et avec \n\r ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

noob
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 15:05

Toujours pareil. J'ai aussi essayé en doublant l'anti slash...
Comment je peux faire pour voir le contenu exact de ma variable? C'est à dire avec les \t, les \n... ?

noob
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 15:49

Personne ne sait?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 mai 2005, 15:56

Essaye le bout de code suivant qui va transfomer les \n par des <br> et qui va transformer les <br> et espaces
$var = nl2br($variable);
$varCorrecte = str_replace('<br>',' ',$variable);
echo $varCorrecte;
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

20 mai 2005, 16:07

Je n'y avais effectivement pas pensé... mais ca ne marche pas... Il y a toujours des sauts de ligne. Avec ta méthode, il remplace bien les sauts de ligne par des "<br />", puis remplace les "<br />" par des espaces, mais ensuite il y a toujours des carrés...

Pourtant, ces variables proviennent de champs de ma base, alimentés par des valeurs provenant de textarea. Et ces caractères spéciaux proviennent bien du saut de ligne... Je vais voir si ca provient pas d'un bug de php_writeexcel..

Merci bien de votre aide! ;)