0

私はhtml(php)にフォームを持っています。このフォームには、スイッチ、ルーターなどからデータベースにログを保存するために使用されるテキスト領域が含まれています。
ターミナルのコマンドラインには通常80列(ライン上のバイト)があるため、属性列を80に設定します。

<tr>
  <td><label for="taskText">Text:</label> </td>
  <td><textarea name="taskText" id="taskText" cols="80" rows="10" required></textarea></td> 
</tr>

動機:なぜ私はこれを行うのですか?この列ID(INT-autoincrement)、log1(TEXT)、log2(TEXT)を持つデータベースにテーブルがあります。

ユーザーが 2 つのログをデータベースに保存し、データベースからそれらを取得して、log1 をフィールド $log1 に、log2 をフィールド $log2 に保存します。ここで、$log1 は配列になり、キーは行になります。
例: `

$log1[0]="line1";
$log1[1]="line2";
$log1[2]="line3";`

問題:したがって、問題はログのテキストをテキストエリアにコピーし、それをデータベース(MYSQL)のTEXT型のフィールドに適切に保存し(私はこれをうまく選択しました)、行末を(どういうわけか)保持してからロードしますデータベースから配列へのログ。ここで、各キーは 1 行になります (例のように、行末のマークはありません)。
私の解決策
データベースに保存する前に関数nl2brを使用し、データベースからのロード中に関数爆発を使用します:

$log1=explode("<br />", $stringWithLogLoadedFromDatabase);

しかし、これが良い解決策かどうかはわかりません。他のアイデアはありますか?

注:
解決策の背景をいくつか書きましたが、主な問題は、テキスト領域にコピーしてデータベースに保存する入力テキスト(ログ)の行末のみです。そのため、行を操作できるようにするには、元の行の終わりがどこにあるかが必要です。

4

1 に答える 1

0

次のことを試してみてください、

文字列をDBに挿入するために使用htmlspecialchars()し、次にそれを引き出すときに、を使用しますhtmlspecialchars_decode()

これらの2つは、クエリに従って出力を作成する場合があります。

于 2012-12-20T10:45:15.227 に答える