• ベストアンサー

改行の削除

現在入力したデータをデータベースに保存し、 そのデータをPHPで表示するようにしています。 入力する場所はテキストエリアで改行などを入れてるのですが、データベースでテキストエリアに表示するときに 下記のように<br />が入ってしまいます。 あ<br /> か<br /> さ そこで、下記のような処理を行ったのですが、やはり上記のような表示になってしまいます。 何かよい方法はありませんでしょうか? $tmpStr = str_replace("<br />", "", trim($tgtStr));

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • randman
  • ベストアンサー率51% (17/33)
回答No.2

あるいは、nl2br関数がどこかで使われているとか。 または、ユーザ定義の出力関数がどこかに定義されているとか。

aiurai54
質問者

お礼

ありがとうございまう。 本体は自分で作ったものじゃないプログラムが 基盤になっています。 nl2brがありましたが、 これをもとにもどすような関数はあるのでしょうか??

その他の回答 (1)

回答No.1

テキストエリアに表示する際のコードを教えて下さい。 通常であれば改行コードをタグに変換する事は無いと思います。恐らく何処かに改行コードをタグに変換する関数が含まれているのでは?

aiurai54
質問者

お礼

上記にあるように、関数の問題でした。 他の部分はHTMLで表示してというように、 複雑なテンプレートです。 貴重なご意見ありがとうございました。

aiurai54
質問者

補足

EUC-JPで表示しています。

関連するQ&A

  • DBからのデータを改行して表示

    テキストエリアで入力したものを → DB DB→入力したものを表示する場合、 改行して入力したものを、改行したまま表示したいのですが 方法がわかりません。 str_replace()とか使って見ましたがダメでした。 教えて下さい。

    • ベストアンサー
    • PHP
  • phpとhtml間のデータ送信時「テキスト改行」処理について

    自分で調べてみましたが、どうしてもわからず行き詰まりました。 どなたかお知恵を貸して頂ければ幸いです。 【使用ファイル】 a.php php処理 b.html db抽出データ表示とフォーム(編集画面) c.html フォーム入力内容表示(確認画面) データ送信はPOSTとSmarty併用 dbへはMySQLで格納 【変数】 $z テキストエリアの項目値 【流れ】 a.php→b.html→a.php→c.html→a.php→b.html/dbへ格納 1:a.phpでdbよりデータ(テキスト)を抽出し追加、変数$zに格納。 2:Smartyでb.htmlへ$zを送る。送り先はフォーム内のテキストエリア値。 3:$zにテキスト追加で改行発生 (\n発生と予測)。 4:b.htmlからPOSTでa.phpへ。 nl2br($z)処理をし、<br />挿入。 5:Smartyでc.htmlへ$zを送る。 $zには<br>と\nの両方が入っている状態。改行表示される。ブラウザのページソースでは<br />が入っている。 6-1:c.html(POST)→a.php(smarty)→b.html str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態 smartyでb.htmlへ 6-2:c.html(POST)→a.php→db格納  str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態でdbへ格納 6-1,2とも<br />を入れたままだと文字列に<br />が入ってしまう 7:a.php→b.htmlで再度$zを呼び出してみると(1:の処理)<br />を取り除いたはずなのに、ブラウザではきちんと改行表示されている。 ブラウザのページソースに<br />の表示はない 【疑問点】 3:\nは発生してPOSTでa.phpにきているのか? きている種類が\nまたは他の改行文字かどうかを調べる手段はあるのか?バイナリ関連で調べるのか? 6-1:<br />を削除してhtmlへ送っているのに改行表示されるのか? <br />が文字列扱いになるのはなぜか? 6-2:dbでは\nが改行として認識されるのか? 7:\nしか入っていない文字列をブラウザ表示して、なぜ改行表示されるのか? 以上です。考えれば考える程にわからなくなってきました。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • 改行について

    フォームのテキストエリアに入力されたデータを PHPと連動してmySqlに格納したいと思っています。 テキストエリアから渡された文字列中に改行がある場合、 そのまま格納しても(サニタイズは当然するとして)問題ないでしょうか? それとも<BR>等に変換すべきでしょうか?

    • ベストアンサー
    • MySQL
  • 改行処理がうまくいきません

    今現在、PHPで掲示板を運用しています。 PHP初心者です。 掲示板で訪問者のユーザーのコメントを以下のように処理しています。 $post_arr[$h] = htmlspecialchars($post_arr[$h]); $post_arr[$h] = str_replace("\r\n", "\r", $post_arr[$h]); $post_arr[$h] = str_replace("\r", "\n", $post_arr[$h]); $post_arr[$h] = str_replace("\n", "<br>", $post_arr[$h]); 改行→<br>変換を行っているのですが、ごくたまに(特定の訪問者)改行処理がされず困っています。 これをcsvでログを保存しているのですが、<br>処理をされずデータがずれてしまいます。 ログを調べるとその訪問者の方は、古いものをお使いなのかなと思いましたが、WIN XP,IE6でしたので訪問者側に問題ないと思うのですが。 初心者で大変恐縮ですが、ご返答よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • データベースのテキストデータの改行方法について

    別サイトで質問して nl2br関数を使えば改行が反映されるとわかったのですが、 <?php $str = nl2br(htmlspecialchars($str, ENT_QUOTES, 'UTF-8'), false); や <?php function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } など、 上記のを試してみたのですが、データベース上のテキストデータの改行がサイトに反映されず困っております。 http://uploda.cc/img/img52b55ee23c01f.png このようにDBに記入したデータをどのようにすれば改行されますでしょうか? 初心者で非常に申し訳ございませんが宜しくお願いします。

    • 締切済み
    • PHP
  • <br>タグを改行に変えたい

    掲示板を作っています。 テキストファイルに書き込んである文字列ですが、改行は<BR>に変換して保存します。 編集で呼び出すときに、<BR>をもとの改行コードに戻す作業を試みています。 $message =~ s/<br>/\n/ig; とやるとテキストエリアがすべて空白です。 $message =~ s/<br/\n/ig; と>をなくすと改行されてテキストエリアに表示されます。 ただ、データには>が残ったまま表示されます。 この対処法を教えてください。

    • ベストアンサー
    • Perl
  • 改行だけの行の削除

    $data1 = file_get_contents("xxxx.txt"); で、読み込んだデータの中に 「 aaaaaa bbbbbb xxxxx yyyyyy 111111 2222222 」 というレコードが入っていたとします。 この中で、改行だけの行を削除し、$data2 に移したいのです。 先頭行と最終行は、trimで削除できましたが、 $data1 = str_replace("^\\n", "", $data2); でも除去できません。 どうすればいいのか、お教えください。

    • ベストアンサー
    • PHP
  • csv内の改行を削除

    フォームから送られてきた文章の 改行を<br />へ変換したいのですが、 $comment_a = ereg_replace("\n","<br />",$comment); としても a<br /> b<br /> c となってしまいます。 a<br />b<br />c としたいのですが、どうしたらよいのでしょうか。 $comment_b = str_replace("\n", "", $comment_a); を追記したのですが、うまくいきませんでした。

    • ベストアンサー
    • PHP
  • TEXTAREAに書いた改行コードを正しくBRに

    置き換えたいのですが、<br>がたくさん増えてしまいます。 下記のように書き換えています。 foreach ($data as $key => $value) { $data[$key] = preg_replace("/^(\s| )+$/", "", $data[$key]); $data[$key] = strip_tags($data[$key]); $data[$key] = stripslashes($data[$key]); $data[$key] = mb_convert_kana($data[$key], "KV"); $data[$key] = htmlspecialchars($data[$key]); $data[$key] = str_replace("\r", "<br>", $data[$key]); $data[$key] = str_replace("\n", "<br>", $data[$key]); $data[$key] = mysql_escape_string($data[$key]); } 別途↓も入れましたが、1改行コードにつき2個<br>がつきます。 文字コードはutfです。 $data[$key] = str_replace("\r\n", "<br>\n", $data[$key]); 正しく改行コードを<br>に変換できないでしょうか?

    • ベストアンサー
    • PHP
  • POSTによる改行を含む文字列の受け渡し

    test1.php内のformのテキストエリア(textarea)のデータをPOSTによってtest2.phpへ送りたいのですが、改行がうまく転送できないか、あるいはうまく表示できていないため、外観上改行されているように見えません。 たとえば、test1.phpのテキストエリアで 「 あいうえお かきくけこ 」 と入力して、それをtest2.phpに送って表示させると、 「 あいうえお かきくけこ 」 と表示されます。 どうすれば改行しているように見せることができるのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう