Page 1 sur 1

Remplacer un saut de ligne par espace

Posté : 20 mai 2005, 14:00
par noob
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?

Posté : 20 mai 2005, 14:02
par Cyrano
essaye sans doubler l'anti-slash:
str_replace('\n',' ',$variable);

Posté : 20 mai 2005, 14:09
par noob
Meme résultat sans doubler l'anti slash...

Posté : 20 mai 2005, 14:41
par noob
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?

Posté : 20 mai 2005, 14:43
par zeus
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"

Posté : 20 mai 2005, 14:57
par Invité
Je viens d'essayer en changeant \n par \r\n, ou \\r\\n, mais il m'affaiche toujours des caractères spéciaux...

Posté : 20 mai 2005, 15:02
par zeus
Et avec \n\r ?

Posté : 20 mai 2005, 15:05
par noob
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... ?

Posté : 20 mai 2005, 15:49
par noob
Personne ne sait?

Posté : 20 mai 2005, 15:56
par zeus
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;

Posté : 20 mai 2005, 16:07
par Invité
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! ;)