Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
nl2br() / wordwrap()対応: PHP 4(2000)
改行文字をHTMLの改行タグに変換したり、長い文字列を指定した幅で折り返したりします。ユーザー入力のテキストをHTMLで表示する際に活用されます。
構文
// 改行文字の前に <br> タグを挿入します。 nl2br($string, $use_xhtml); // 指定した文字数で文字列を折り返します。 wordwrap($string, $width, $break, $cut_long_words);
関数一覧
| 関数 | 概要 |
|---|---|
| nl2br($string, $use_xhtml) | 文字列内の改行文字の前に『<br />』を挿入します。第2引数を『false』にすると『<br>』が挿入されます。 |
| wordwrap($string, $width, $break, $cut_long_words) | 文字列を $width 文字ごとに $break で折り返します。$cut_long_words を『true』にすると、単語の途中でも強制的に折り返します。 |
戻り値
変換後の文字列を返します。元の文字列は変更されません。
サンプルコード
<?php
// 改行文字を <br> タグに変換します。
$text = "1行目\n2行目\n3行目";
echo nl2br($text); // 各行の改行前に <br /> が挿入されます。
// HTML5 では <br> を使う方が一般的です。
echo nl2br($text, false); // 『<br>』が挿入されます。
// フォーム入力値を安全にHTMLとして表示する例です。
$comment = "こんにちは。\n商品について質問があります。\nよろしくお願いします。";
echo nl2br(htmlspecialchars($comment, ENT_QUOTES, "UTF-8")); // エスケープしてから改行を変換します。
// wordwrap() で指定した文字数ごとに改行を挿入します。
$str = "The quick brown fox jumps over the lazy dog";
echo wordwrap($str, 15, "\n"); // 15文字ごとに改行が挿入されます。
// 単語の途中では折り返さない動作が既定です。
echo wordwrap("Hello World Programming", 10, "\n"); // 単語の区切りで折り返されます。
// 第4引数を true にすると単語の途中でも強制的に折り返します。
$long = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo wordwrap($long, 10, "\n", true); // 10文字ごとに強制的に改行されます。
// メール本文の整形に活用する例です。
$body = "いつもお世話になっております。ご注文いただいた商品の発送が完了しましたのでお知らせいたします。";
echo wordwrap($body, 30, "\n", true); // 30文字ごとに折り返されます。
概要
『nl2br()』は文字列内の改行文字を HTML の改行タグに変換する関数です。テキストエリアに入力されたコメントや住所など、ユーザーの改行をそのままブラウザに反映したい場合に使用します。XSS対策として、必ず『htmlspecialchars()』でエスケープしてから『nl2br()』を適用してください。順番を逆にすると <br> タグまでエスケープされてしまいます。
『wordwrap()』は文字列を指定した幅で折り返す関数で、メール本文の整形やテキストファイルの出力に活用されます。既定では単語の途中で折り返さないため、英文のフォーマットに適しています。第4引数を『true』にすると単語の途中でも強制的に折り返しますが、日本語にはスペース区切りがないため期待通りに動作しない場合があります。
文字列の置換には『str_replace()』、文字列の分割には『explode()』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。