まず、rとnの違いについて話しましょう
「キャリッジリターン」と「ラインフィード」の2つの概念の起源と違いについて
コンピュータが登場する前に、テレックスAタイプライター(テレタイプモデル33、 Linux/Unix での tty の概念はそこから来ています) は 1 秒あたり 10 文字を入力できますが、改行を完了するまでに 0.2 秒かかるという問題があります。新しい文字を入力する場合は 2 文字しか入力できません。この 0.2 秒間に送信されると、この文字は失われます。そこで、開発者は、各行の後に 2 つの文字を追加することを考えました。その 1 つは「復帰」と呼ばれます。これは、タイプライターにプリント ヘッドを左端に配置するように指示するもので、もう 1 つは「ライン フィード」と呼ばれ、タイプライターに用紙を 1 行下に移動するように指示します。これが「ライン フィード」と「キャリッジ リターン」の起源です。 、英語の名前からもわかります
その後、コンピューターが発明され、これら 2 つの概念がコンピューターに導入されました。当時、メモリは非常に高価で、一部の科学者はそれぞれの末尾に 2 つ追加すると考えました。文字がもったいないので、1 行追加してください。Unix システムでは、各行の末尾は "n" だけです。各行は「. 52d0c3fec86b7fcd6efc903e42f5adf8361d39c283da743a25c4425fd4d5f2e4」、つまり「nr」です。Mac システムでは、各行の終わりは「361d39c283da743a25c4425fd4d5f2e4」、つまり「n」です。直接的な影響として、Unix/Mac システムでは、Windows でファイルを開くと、すべてのテキストが 1 行になり、Windows でファイルを開くと、先頭に余分な ^M 記号が表示されることがあります。各行の終わり
C 言語プログラミング (Windows システム)
r はこの行の先頭に戻り、この行の前の出力を上書きします
例: (以下は C++ コードであることに注意してください)
。最後にxixiだけ表示されて、ははは後ろが上書きされます
int main (){cout << "hahaha" << "\r" << "xixi" ;}。
int main() { cout << "hahaha" << "\n" << "xixi" ; }
2 番目の改行の表現
(.txt、.PHP など) の改行は「rn」、「n」、「r」です。 , ただし、HTML ファイルで表示される場合 (ここで注意: HTML の TEXTAREA テキスト フィールドの改行も "r" または "n" です) は "<" ;br/>" タグになります。
PHP スクリプトを使用して変換します。
コードは次のとおりです (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);
以上がPHPが改行を処理する場合の問題の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。