1

出力で1行/2行/3行の間隔を維持するために、次を使用してテキストエリアからmysqlデータベースに投稿を送信しています。

$update = nl2br(htmlentities($string, ENT_QUOTES, 'UTF-8'));

機能することもありますが、ダブルが 1 行のスペースに置き換えられることもあれば、2 行のスペースが保持されることもあります。これが私の出力です。これはすべて、2 行のスペースを使用して入力されたものです (Enter キーを 2 回押します)。これを改善する方法についての提案をいただければ幸いです。

    something

    went

    a 
    little

    wrong
    there

ありがとうプリンツホルン。以下は、問題のテーブルの CREATE TABLE ステートメントです。

CREATE TABLE IF NOT EXISTS `ticket_updates` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ticket_id` varchar(100) NOT NULL,
  `update` テキスト NOT NULL,
  `time` タイムスタンプ NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `member_id` varchar(100) NOT NULL,
  主キー (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
4

2 に答える 2

0

私の問題はwordwrap()、出力を試してフォーマットするために使用したことが原因であり、次の理由によるものではありません。

nl2br(htmlentities($string, ENT_QUOTES, 'UTF-8'));

wordwrap($update, 50, " \n", true)CSS3 プロパティに変更しましたword-break:break-all;( word-break:break-word;IE9 では動作しません)

于 2012-10-18T06:51:39.397 に答える
0

htmlentities() を使用すると、「\n」が「%5Cn」にエンコードされます。そのため、実際の出力を取得するために問題が発生する可能性があります。

次のコードを試してみてください。必要な実際の出力を見つけるのに役立つ場合があります。

echo htmlentities($string, ENT_QUOTES, 'UTF-8');

于 2012-10-01T07:20:40.893 に答える