Question

Quelle est la différence entre \ n et \ r (je sais que cela a quelque chose à voir avec le système d'exploitation) et quel est le meilleur moyen de faire écho à un saut de ligne qui fonctionnera sur plusieurs plates-formes?

MODIFIER: En réponse à Jarod, je l'utiliserai pour rappeler un saut de ligne dans un fichier journal .txt, même si je suis sûr de l'utiliser à l'avenir pour des choses telles que l'écho de HTML maquillage sur une page.

Était-ce utile?

La solution

  • \ n est un saut de ligne Linux / Unix.
  • \ r est un saut de ligne classique pour Mac OS (non-OS X). Mac OS X utilise l'unix ci-dessus \ n .
  • \ r \ n est un saut de ligne Windows.

D'habitude, je n'utilise que \ n sur nos systèmes Linux et la plupart des applications Windows le traitent de toute façon.

Autres conseils

Utilisez la constante PHP_EOL , qui est automatiquement définie sur le saut de ligne correct pour le système d'exploitation sur lequel le script PHP est exécuté.

Notez que cette constante est déclarée depuis PHP 5.0.2.

<?php
    echo "Line 1" . PHP_EOL . "Line 2";
?>

Pour la compatibilité ascendante:

if (!defined('PHP_EOL')) {
    switch (strtoupper(substr(PHP_OS, 0, 3))) {
        // Windows
        case 'WIN':
            define('PHP_EOL', "\r\n");
            break;

        // Mac
        case 'DAR':
            define('PHP_EOL', "\r");
            break;

        // Unix
        default:
            define('PHP_EOL', "\n");
    }
}

La réponse de Jarod contient l'utilisation correcte de \ r \ n sur différents systèmes d'exploitation. Voici un peu d'histoire:

  • \ r, ou le caractère ASCII avec le code décimal 13, est nommé CR après "retour chariot".
  • \ n, ou le caractère ASCII avec le code décimal 10, est nommé "nouvelle ligne" ou LF après "saut de ligne".

La terminologie " retour chariot " et " saut de ligne " date à laquelle les télétypes ont été utilisés à la place des terminaux avec moniteur et clavier. En ce qui concerne les télétypes ou les machines à écrire, "retour de chariot" signifiait déplacer le curseur et revenir à la première colonne de texte, tandis que le "saut de ligne" signifiait faire tourner le rouleau pour aller sur la ligne suivante. A cette époque, la distinction avait du sens. Aujourd'hui, les combinaisons \ n, \ r, \ r \ n pour représenter la fin d'une ligne de texte sont complètement arbitraires.

Aucune compatibilité amont requise pour PHP_EOL sur PHP4.

Nécessité de corriger la déclaration de Moore concernant la disponibilité constante de PHP_EOL: "... est déclaré depuis PHP 5.0.2.".

Non, cela existe depuis PHP 4.3.10. Quiconque exécute encore quelque chose de moins que cela ne devrait de toute façon pas être dans le biz À ce jour, personne ne devrait utiliser moins que PHP 5!

D'après le manuel PHP: " PHP_EOL Le symbole 'Fin de ligne' correct pour cela Plate-forme. Disponible depuis PHP 4.3.10 et PHP 5.0.2 " ;.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top