[RESOLU] CR LF : lequel utiliser en fin de ligne PHP ?

Petit nouveau ! | 9 Messages

07 juin 2020, 11:38

Bonjour à tous

J'ai un problème de fin de ligne dans mes pages PHP.

Selon le serveur sur lequel je mets mon site... les fins de lignes sont plus ou moins bien interprétées !
Du coup, je ne sais plus comment doivent se terminer les lignes de codes :
\r \n ou \r\n ?

En fait, j'ai un comportement très différent sur les différents serveurs...
serveur 1 : PHP 4 (c'est le site d'origine que je viens de passer sous php7.4) => \n OK
serveur 2 : PHP 7.4 => \r OK
serveur 3 : PHP 7.4 => \r ne fais pas de saut de ligne et du coup le PHP ne marche pas.

exemple

Code : Tout sélectionner

//afficher bonjour echo 'bonjour';
est interprété comme :

Code : Tout sélectionner

//afficher bonjourecho 'bonjour';
Du coup, quelle est la NORME pour finir les fins de lignes ?
Éventuellement, quel est le réglage, qui rend la lecture des \r et \n plus "permissif" ?

J'utilise notepad++ et j'ai l'impression qu'il gère assez mal les sauts de ligne, mettant parfois \r \n ou \r\n
(on dirait qu'il le fait en fonction de ce qu'il détecte dans le fichier).

Merci d'avance pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8627 Messages

07 juin 2020, 16:29

Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

07 juin 2020, 17:10

Bonjour

Merci pour la réponse, mais ça ne répond pas à ma question.

Quel est la fin de ligne normalisée, pour un fichier PHP ?
Pour qu'il soit bien interprété par le serveur.

Et/ou quels paramètres modifier sur PHP ou apache, pour bien lire ces fins de lignes.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8627 Messages

07 juin 2020, 23:19

ça ne dépend pas de PHP mais de l'OS de ton serveur.

Les bonnes pratiques (PSR) recommandent d'utiliser \n : https://www.php-fig.org/psr/psr-12/
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

08 juin 2020, 08:03

Merci Arthur !
Ton lien m'a aidé ! Je ne me rappelai plus du nom des normes, le fameux PSR.
Donc j'ai trouvé sur un sit (https://www.supinfo.com/articles/single ... es-psr-php) la norme de fin de ligne PHP en PSR-2 => LF
On est passé au PSR-12, mais je n'ai pas trouvé l'info via la recherche.

Pour ce qui est de l'OS des serveurs, les 2 derniers sont identiques avec Centos 7 64bits.
Il y a probablement de petites différences, car l'un est une mise à jour de version plus anciennes et l'autre est un installation toute neuve.
Et je ne vois pas du tout ce qui influe sur l'interprétation de ces sauts de lignes.
Bon bref, je vais checker tous mes fichiers pour remettre la bonne fin de ligne.

Dommage qu'on ne puisse pas l'imposer à Notepad++, car j'ai l'impression que le logiciel fait un peu ce qu'il veut... en fonction de ce qu'il détecte dans le fichier.