• ベストアンサー

eregi_replace(

sjamの回答

  • ベストアンサー
  • sjam
  • ベストアンサー率41% (26/63)
回答No.2

改行コードをエスケープしている(\n→\\n)とか、 \r\n→\r<br>となっているとか…

noname#82539
質問者

お礼

 それでした! \rを除去してみたら正常に表示されました。こんな情報量の少ない質問文から当てていただいてありがとうございます。

関連するQ&A

  • reg_replace関数の使い方

    reg_replace( "\n","<br>", $rec['body'] ); として、テキストエリア内の改行をhtmlタグの<br>に変換して、 他のページに送って表示させたいのですが、 改行ではなく、半角スペースが入ってしまいます。 原因が判らず困っております。 お詳しい方がおられましたら教えてください。 よろしくお願い致します。

    • ベストアンサー
    • 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
  • PHPのエスケープシーケンスについての質問です。

    PHPのエスケープシーケンスについての質問です。 下記のコードで改行コードを<br>に置換し、結果を画面に出力しました。 $text = "あいうえお\\nかきくけこ\nさしすせそ"; $text = str_replace("\n", "<br>" , $text); echo $text; 実行結果は下記になりました。 あいうえお\\nかきくけこ さしすせそ 私の予想では、\\nが\<br>に置換され、下記になるかと思いました。 あいうえお\ かきくけこ さしすせそ なぜ\\nは\<br>に置換されず、そのままだったのでしょうか?

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

    今現在、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
  • 文字列内の\nで改行表示させるための置換

    すでに他のかたがNo.7770 でなさった質問によく似ていますが、私の場合と微妙に違いますので、質問させてください。たとえば: $data='i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る' この$data 内の「\n」を<Textarea>に改行して表示したいので、文字列置換を $data = ereg_replace("\n", "<BR>", $data); とか $data = ereg_replace("\\n", "<BR>", $data); とか $data = ereg_replace("/\\n/", "<BR>", $data); やってみてますが、どうしもPerl の場合には成功した: $data=~ s/\\n/\n/g; と同じ結果が得られません。表示の末尾に<BR>が出たり、\nのままだったりします。何度も行なわれているような初歩的質問ですが、お願いします。

    • ベストアンサー
    • PHP
  • DBから出力の際preg_replace等が効かぬ

    データベースを使ったウェブサイト。 POSTを使ったformタグより、textareaにてテキストをsql文にて、 MySqlにinsertし、(このときにmysql_real_escape_string) 読み出すときにhtmlspecialcharsしてprint。 これが一般的な流れなのですが、 上記のまま行うと、改行(\r\n)がウェブ上に見えてしまいます。 ですので、 1:print preg_replace("/\r\n/","<br />", htmlspecialchars($ans['Pt_txt1'], ENT_QUOTES, 'UTF-8')); 2:print nl2br(htmlspecialchars($ans['Pt_txt1'], ENT_QUOTES, 'UTF-8')); などをやって消そうとしているのですが消えません。 ためしに、 $aaa ="適当な文字"; 1:print preg_replace("/\r\n/","<br />", htmlspecialchars($aaa, ENT_QUOTES, 'UTF-8')); 2:print nl2br(htmlspecialchars($aaa, ENT_QUOTES, 'UTF-8')); のように、MySqlを介さずに直接出力した場合、 ちゃんと改行コードは<br />に変更してくれましたので ソースの記述ミスではないと思うのです。 原因はなににあるでしょうか。 なお、現状phpmyadminで覗くと、 「フィールドA」(mysql_real_escape_stringを通してinsert) ----- あいうえお\r\nかきくけこ ----- 「フィールドB」(mysql_real_escape_stringを通さずにinsert) ----- さしすせそ たちつてと ----- となっているフィールドがありますが、 それらがhtmlで出力されたもののソースを見ると、 ----- A:あいうえお\r\nかきくけこ B:さしすせそ<br />たちつてと となぜかBのほうが希望通りの動きをします。 cを通さずにDBに入れてしまったほうが希望通りに動きます。 さっぱり困りました。

    • ベストアンサー
    • MySQL
  • 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の掲示板を作成しています。 現在リロードや連続で送信ボタンを押された際の二重投稿防止処理を作っているのですが、どうしてもうまくいきません。 ログで最新に書かれた記事を呼び出し、送信されたデータと比較し、名前とコメントが一緒であれば二重投稿という扱いにするつもりなのですが、 改行があるとうまくいかないようなのです。 str_replaceを使って<br>タグを削除したり、 \r\nや\rを\nに統一させたり、 両方にtrimを使用してみたりしたのですが、 ソースを見るとフォームで送られてくるコメントのみ、どうしても改行されたままなんです。 これは一体何が原因なのでしょうか? どうしたら改行を含んだデータを比較することができますか?

    • ベストアンサー
    • PHP
  • \の付加について

    質問させて頂きます。 とあるフォームでテキストデータを入力し、 それをデータベースに格納しているのですが その際に、不要な位置に「\」マークが追加されてしまいます。 それを省いて格納したいのですが、可能でしょうか? 格納前に↓のように、改行処理的な命令を行ってます。 $text = mysql_escape_string($text); $text = ereg_replace("(\n|\r|\r\n)", "<br>", $text); $text = ereg_replace("\t" , " " , $text); 問題のテキスト文章 「表では」の「表」と「で」の間に「\」が入ります。→「表\では」 「貼られ」の「貼」と「ら」の間に「\」が入ります。→「貼\られ」 他にも「\」が入りましたが 表現を変えて直してみたら、「\」は表示されませんでした。 「表」と「貼」という字は文字化け的な要素が絡んでいるのでしょうか? このような質問で申し訳ありません。

    • ベストアンサー
    • PHP
  • テキストエリアで読み込んだら<br>が表示されてしまう

    現在、登録フォームを作っているんですけども(mdbで保存してます) その登録フォームの中には「登録」、「編集」の独立したプログラムを作りました。 登録した内容を「編集」で更新したりしてるんですけれども、「登録」で記入した内容に<br>が含まれている と、編集フォームのテキストエリアの中にそのまま<br>が表示されてしまいます。 (mdbから読み込んでるので当たり前なのですが・・) 「登録」のページには下記の記述のように、<br>に変換するようにして、mdbに保存させているんですが 「編集」ではこの<br>を表示させたくないんです。そこをどう記述したらいいのかわかりません。<br>を表示させないようにして、手動で改行できるようにしたいのですがどうしたらいいのでしょうか・・・。 hp_comment = Replace(hp_com,Chr(13) & Chr(10),"<br>")& vbCrLf ASPの掲示板で質問されていた内容なんですが回答もなく気になったので質問させていただきます。 どなたかご指導よろしくお願いいたします。