[PHP-users 1117] Re: TEXTAREAの表示方法について

Mitsuhisa TANAKA php-users@php.gr.jp
Wed, 08 Aug 2001 16:59:13 +0900


初投稿の田中です。
何時も参考にしています。

From: "nishino" <nishino@plug-in-inc.com>
Subject: [PHP-users 1109] TEXTAREAの表示方法について
Date: Wed, 8 Aug 2001 15:03:39 +0900

> PHP4.0.4 POSTGRESQL7.0.3を使用しています。
> 
> フォームタグのTEXTAREAで入力した文章(改行を含む)をデータベースに保存し
> それを再度、修正のために表示させようとしているのですが、改行をしたところから
> あとの文字が
> 消えてしまいます。
> 
> 例)
> あああああ
> いいいいい
> 
> と保存・表示したいのですが

Debian GNU/Linux 2.2r3 に upstream の PostgreSql 7.0.3
 と PHP 4.0.3pl1 のソースパッケージを利用して自前の deb
パッケージを作って利用しています。

# これ以上のことは自分で調べてね。

確認用の表示文字列には、以下のような関数を作って

echo "<td>" . change_display_strings($strings) . "</td>\n";

みたいな感じにすると、改行や &, ," <, >, もちゃんと表現され
ます。

magic_quotes_gpc が ON ならば
データベースを EUC_JP などで作っておけば PostgreSQL へ
の格納は入力された文字をそのまま入れれば大丈夫だと思うけど
な。

// display strings
// usage, if you need all strings change HTML entities
// change_display_strings($strings, "all");
// or you need (&, ", <, >) chang (&amp, &quot, &lt, &gt)
// change_display_strings($strings);
function change_display_strings($strings, $all = NULL) {
  if (get_magic_quotes_gpc()) {
    $strings = stripslashes($strings);    // delete backslash(\)
  }
  return ereg_replace("\n", "<BR>", ($all != "all" ? htmlspecialchars($strings) : htmlentities($strings)));
}

漢字が交じっている文字列の変換時には、"all" を指定すると
悲惨なことに。

以上、よろしくお願いいたします。
-----------------------------------------------
TANAZO Limited Partnership / Mitsuhisa TANAKA
0426-42-0321(FAX share) / 070-5582-0823(PHS)
http://www.tanazo.com/
http://tanazo.rocketbeach.net/  e-shop
http://www.tama-oss.org/ [tama open system studio]
Key fingerprint = A455 00C4 5585 8237 9EBB  12D9 3E2D 5A24 0B34 70B0