複数行入力可能なtextareaから受け取ったデータは、そのままではechoやprintで改行して表示してくれません。
改行コードが空白で表示され、一行で表示されてしまいます。
str_replaceでも同じ事が出来ますが一般的には改行コードはUnicodeやShift_JIS等の文字コードの違いに対応している「nl2br」を使います。
改行コードを変換する方法
■nl2br
nl2br(受け取った変数)
受け取った変数の改行コードを<br />に変換した物を返します。
<form method="post"> <input type="submit" name="botan" value="send">ボタン <textarea name="data" cols="10" rows="2" wrap="hard" maxlength="10"> 初期値の文字 </textarea> </form> <?php $moji=nl2br($_POST["data"]); print $moji; echo "<BR><BR>"; print $_POST["data"]; ?>
実行すると$_POST[“data”]の改行コードが<br />に変換されて$mojiに代入します。
$mojiを表示すると、このように改行表示するようになってます。
逆にnl2brで変換したデータを元に戻すにはShift_JISの場合
$moji2=str_replace(“<br />”,”\r\n”,$moji);
で$moji2に元に戻したデータが入ります。
また、Shift_JISで「<br />」ではなく「<br>」が良い場合は
$moji=str_replace(“\r\n”,”<br>”,$_POST[“data”]);
で「<br>」になります。
では次回からは入力されたデータをファイルに保存する方法を紹介します。