ホームページ > バックエンド開発 > PHPチュートリアル > 各段落が

で囲まれるようにテキストエリアにコンテンツを入力するにはどうすればよいですか?

各段落が

で囲まれるようにテキストエリアにコンテンツを入力するにはどうすればよいですか?

WBOY
リリース: 2016-06-17 08:31:58
オリジナル
1299 人が閲覧しました

たとえば、次のように入力すると、
私は画家です
皆さんこんにちは
La La La


入力して送信すると、次のように変換されます:

私は絵描きです


皆さんこんにちは


ラララ




データベースに保存

返信内容:

リッチ テキストは必要ありません。データベースでは HTML を使用しないことをお勧めします。出力する場合、安全性を確保するために直接エスケープすることができないためです (コンテンツはすでに HTML です)。現時点では、XSS をフィルタリングするのに多大な労力がかかります。 リッチテキストエディターの場合は非常に面倒ですが、テキストエリアの場合は非常に簡単です。
<code class="language-js"><span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'textarea'</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">value</span><span class="p">;</span>
<span class="nx">val</span> <span class="o">=</span> <span class="nx">val</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="s2">"\n"</span><span class="p">,</span><span class="s2">"</p><p>"</span><span class="p">);</span>
<span class="nx">val</span> <span class="o">=</span> <span class="s2">"<p>"</span> <span class="o">+</span> <span class="nx">val</span> <span class="o">+</span> <span class="s2">"</p>"</span><span class="p">;</span>
</code>
ログイン後にコピー
簡単そうに思えますが、実際にはブラウザをまたいでこれを行うのは非常に面倒です。主な改行は br、p、div です。
tinymce/ckeditor などのサードパーティのエディターを使用している場合、これらのエディターには同様の機能があります。

自分で書くと単純にbrかdivかpを探して自分でツリーを生成して自分で置き換えるだけなのでかなり面倒です。 。 。 。 textareの内容を直接保存します。

表示時の CSS を設定します:

white-space: pre-wrap; html
を直接white-space:pre-wrapに変換する必要はありません。 各行を読み取り、n、ファイル関数ライブラリを書き込むループ サマーノート。 。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート