
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>などの手法がよく見られますが、これは別な手法なのでしょうか?
<BR>さえ入っていなければ普通に行頭に>を追加、それをhtmlspecialcharsして表示すればこのようになりますよ。DBに<BR>をつけた状態で保存しているのがそもそもの問題だと思います。
No.2
- 回答日時:
DBに<BR>が格納されているのだとしたら、htmlspecialcharsをしようと<BR>は表示されてしまいますよ。
str_replace関数等で<BR>を"\n"に変換する必要があります。面倒でしょ?先の回答で「DBには素の状態で保存して、表示携帯に応じて変換する」と書いたのは、こういうケースを想定しての事です。strip_tagsというタグを取り去る関数もありますが、元々書き込みに<BR>が入ってる事自体がまずいと思うので本末転倒のような気がします。
まだ開発中であれば、書き込み時の処理自体を見直した方が良いかと思います。<BR>が入ったままですとhtmlspecialcharsを使って表示した時にも改行されず<BR>と画面に表示されるだけです。かといってhtmlspecialcharsを使わずに画面表示をすると、もし書き込み時にタグやスクリプトが混入した場合、そのまま画面に表示されてセキュリティホールになる場合があります。
しかしよく掲示板の返信などで返信用の入力ボックスの内で
>掲示板です
>テスト
<返信内容>
などの手法がよく見られますが、これは別な手法なのでしょうか?
No.1
- 回答日時:
<textarea>タグ内では<br>タグは効きません。
<br>を改行(\n)に変換すれば期待通りの表示ができるはずです。まず問題点ですが、DB内のテキストデータの改行が既に<br>になってるんですよね?これはユーザーが入力した訳じゃないのでは?恐らく書き込みの確認画面などにnl2br関数で改行をBRに変換して、そのままDBに書き込んでいるのでは?基本的にDB内には素の状態で保存して、表示時に表示方法に合わせて変換をする考え方の方がスマートです。
次に<br>が本文中に出てくるのは許すとしますが、<textarea>掲示板です<br>テスト</textarea>というのはHTML的に正しくありません。ブラウザや文字列によってはブラウザで正常に表示できない場合があります。文字列をブラウザに出力する際にはhtmlspecialcharsを通して出力するようにしましょう。
確かにDBに保存するときに<BR>で保存しています。
また
<TEXTAREA NAME=body COLS=50 ROWS=8 wrap="soft"><? print htmlspecialchars($body) ?></TEXTAREA>
という風にしたのですが相変わらず<BR>が表示されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- MySQL MySQLに登録した内容を更新する時の、textareaの使い方 1 2022/07/11 18:20
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
アップロード画像数でCSSを分け...
-
PHP MySQLに画像を直接保存
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
掲示板を資料を参考にして開発...
-
これの対応OSを教えて下さい。p...
-
PHP8を使うと、大量のWarningが...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
phpのheader("Location:#pos")...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのレポートの表示...
-
フォームのtextareaにnl2brを使...
-
C#のRichTextBoxで表示行数を取...
-
入力テキスト内で改行コードが...
-
改行したいのですが
-
<br>が文字列で出力されてしま...
-
改行コード入り文字列を含むXML...
-
テキストエリアで読み込んだら<...
-
ファイル名がテキストボックス...
-
textareaへデータ表示(改行変換)
-
機種依存文字
-
phpの<br>\\nと\\nとエスケープ...
-
<TEXTAREA> 1行目の改行・・・。
-
改行コードをいれたい
-
テキストエリアの改行
-
phpテンプレートsmartyの所定文...
-
【jQuery】いい文字数カウンタ...
-
該当セルに行替えを含むデータ...
-
Smartyでの改行
-
HTMLの値の渡し方について質問...
おすすめ情報