Retour à la ligne avec fwrite

Eléphant du PHP | 291 Messages

02 juil. 2006, 15:18

Bonjour,

je ne trouve pas sur le forum ni php.net le moyen de sauter des lignes avec fwrite

Si vous avez une idée parcque la il ecrit tout sur une ligne et du coup rien ne fonctionne!

D'avance merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 juil. 2006, 15:28

Salut,

ajoute "\n" entre guillemets en lieu et place d'un saut de ligne.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 291 Messages

02 juil. 2006, 15:30

en fait j'ai essayé mais ca ne passe pas, je dois pas le mettre au bon endroit
exemple :
$somecontent .= '$titre ="' . $titre . '";',"\n";

ViPHP
ViPHP | 3607 Messages

02 juil. 2006, 15:52

pourquoi une virgule au mileu?
$somecontent = 'titre ="'.$titre.'"\n';

Eléphant du PHP | 291 Messages

02 juil. 2006, 15:56

ca ne fonctionne pas!

j'ai pas beaucoup de ligne à écrire mais comme c'est des variables... si je met \n il me l'ecrit dans le fichier et je ne veux pas car cela rend mes variables inutilisables.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 juil. 2006, 16:14

non pour que le saut de ligne \n soit pris en compte il faut obligatoirement le placer entre guillemets => "\n"

Pour la concaténation avec la virgule elle ne fonctionne qu'avec un echo pas une affectation de varaible:

Essaie avec:
$somecontent .= '$titre ="' . $titre . '";'."\n";

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 291 Messages

02 juil. 2006, 16:16

Super ! merci beaucoup !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 juil. 2006, 16:22

a noter que la concaténation de "\n" était obligatoire étant donné que tu as débuté avec des apostrophes pour la chaine. Dans le cas de l'utilisation de guillemets:
$somecontent .= "\$titre ='".$titre."';\n"; 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 8 Messages

12 sept. 2006, 11:48

J ai le meme soucis, lors de la creation d un fichier xml

Code : Tout sélectionner

$xml .= '<pays>'; $xml .= '<Name>'.$row['Code_Pays'].'</Name>'; $xml .= '<Src>'.$row['Url'].'</Src>'; $xml .= '<Published>YES</Published>'; $xml .= '</pays>';
Je ne sais pas comment mettre le \n ?

Code : Tout sélectionner

$xml .= '<pays>';."\n"
???? (celui ci ne marche pas)

et j ouvre le fichier avec notepad.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 sept. 2006, 11:57

Je ne sais pas comment mettre le \n ?

Code : Tout sélectionner

$xml .= '<pays>';."\n"
???? (celui ci ne marche pas)
Il faut effectivement de mettre le \n entre guillemets pour qu'il soit correctement interprété, mais cela ne te dispense pas de respecter la syntaxe de php.

Prend le temps de lire le message d'erreur au lieu de dire que ton code ne marche. Je suis sur que des parse error tu en as déjà eu souvent et que tu sais comment corriger la plupart de ces erreurs d'innatention ;)

Invité
Invité n'ayant pas de compte PHPfrance

12 sept. 2006, 13:39

C est plus un probleme de concatenation , j ai regardé, modifié mais je ne trouve toujours pas.

Code : Tout sélectionner

$xml .= '<pays>';"\n";

Eléphant du PHP | 332 Messages

12 sept. 2006, 14:10

Normalement le retour à la ligne se fait avec deux caractères (ceci date du temps béni des téléscripteurs) :
CR : retour au début de la ligne (même ligne et retour en colonne 1)
LF : passage à la ligne suivante (même colonne et passage à ligne+1)

Vous pourrez le vérifier quand vous faites une saisie dans un textarea : chaque appui sur la touche ENTER est transformé en deux caractères (du moins sous Windows).

Pas mal d'éditeurs de texte se contentent désormais d'un seul caractère (généralement le LF) pour faire les deux actions du retour au début de la ligne suivante. Mais pas des logiciels "primaires" comme Notepad. Par contre, Wordpad n'a pas de souci

On écrira donc
fwrite ($fichier, "Le texte\r\n");
http://www.php.net/manual/fr/language.t ... tax.double