Maison >développement back-end >tutoriel php >Explication détaillée du problème lorsque php gère les sauts de ligne
Parlons d'abord de la différence entre r et n
L'origine et la différence des deux concepts "Carriage Return" et "Line Feed".
Dans les ordinateurs Avant son apparition, il y avait quelque chose appelé Teletype Model 33 (le concept de tty sous Linux/Unix vient de là), qui pouvait taper 10 caractères par seconde, mais il avait un problème, c'est-à-dire qu'il pouvait finir de taper une ligne lors d'un changement de ligne. , cela prend 0,2 seconde, ce qui est suffisant pour taper deux caractères. Si un nouveau caractère est transmis pendant ces 0,2 secondes, alors ce caractère sera perdu
Ainsi, ont pensé les développeurs. consiste à ajouter deux caractères de fin après chaque ligne. L'un est appelé « retour chariot », qui indique à la machine à écrire de positionner la tête d'impression sur la bordure gauche ; l'autre est appelé « saut de ligne », qui indique à la machine à écrire de déplacer le papier vers le bas ; . Une ligne. C'est l'origine du "saut de ligne" et du "retour chariot", comme en témoignent leurs noms anglais
Plus tard, l'ordinateur a été inventé, et ces deux concepts ont été introduits dans l'ordinateur. À cette époque, la mémoire coûtait très cher et certains scientifiques pensaient que c'était trop inutile d'ajouter deux caractères à la fin de chaque ligne. Il y avait donc un désaccord. Dans les systèmes Unix, un seul caractère était ajouté à la fin de chaque ligne. . "08ab8c7a5e8c3561646c85afea6ee002", qui est "n" dans le système Windows, la fin de chaque ligne est "08ab8c7a5e8c3561646c85afea6ee002ae50841a1e5ebedcd2097f8726239184", qui est "nr" dans le système Mac; de chaque ligne est "< "Enter>", c'est-à-dire "n";. Une conséquence directe est que si le fichier sous le système Unix/Mac est ouvert sous Windows, tout le texte deviendra une seule ligne; et si le fichier dans Windows est ouvert sous Unix/Mac, il peut y avoir un symbole ^M supplémentaire à la fin de chaque ligne
Lors de la programmation en langage C (système Windows)
r revient au début de celui-ci. line, qui renverra la sortie précédente de cette ligne. Écrasez-la
Par exemple : (Notez que ce qui suit est du code C++)
Seul xixi est affiché à la fin, et hahaha l'est. recouvert de
int main (){cout << "hahaha" << "\r" << "xixi" ;}n est un retour chariot+ Saut de ligne : déplacez d'abord le curseur au début de la ligne, puis passez à la ligne suivante, qui est le début de la ligne suivante <.>
int main() { cout << "hahaha" << "\n" << "xixi" ; }L'expression des deux sauts de ligne
en ordinaire Dans les fichiers tels que .txt, .php, etc., les sauts de ligne sont "rn", "n", "r", mais lorsqu'ils sont affichés dans des fichiers HTML (voici une remarque : les sauts de ligne dans le champ de texte TEXTAREA du HTML sont également "r") ou "n") est le "
Utilisez le script PHP pour convertir.
Le code est le suivant (tiré du manuel PHP) :
//Order of replacement $str="Line1\nLine2\rLine3\r\nLine4\n"; $order=array("\r\n","\n","\r"); $replace='<br/>'; $newstr=str_replace($order,$replace,$str);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!