- ベストアンサー
改行コードの<BR>への変換がうまくいきません。
chi-konの回答
- chi-kon
- ベストアンサー率43% (58/132)
データを加工してDBにいれるんですか? データはデータのままにしておいて、 表示するときのみ,<BR/>に変換するほうが よいのではないでしょうか? no.1の方が言っておられる関数を使ってください。 らくちんでっせ
関連するQ&A
- 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
- 改行コードについて
ファイルの文字コードはutf-8で改行コードはLFです。 メール送信時にメール文面の一部にいれるテキストを mysqlに保存しています。 メール送信のソース内でデータを読み込み送信までは できているのですが改行コードを変換したく $msg = str_replace("\r\n", "\n", $msg); とやってみましたが改行されず普通に\r\nと表示され うまく変換ができません。 いろいろと試した結果以下のソースでは正常に改行されました。 $msg = str_replace("\\r\\n", "\n", $msg); メール送信前にデバッグでしてみましたが読み込むデータの 改行部分は\r\nとなっているのは確認済みです。 \を多くつければ改行はできるようなのですがこれは仕様なの でしょうか? またmysqlに入れてあるデータはフォームから入力し登録 しているのですがLFの改行コードは\nなので登録時に\r\nではなく \nと変換してからmysqlに登録するのがいいものなのでしょうか?
- 締切済み
- PHP
- CGIで改行タグを改行コードに変換ってできますか?
CGIで改行タグを改行コードに変換ってできますか? $text =~ s/\r\n/<br>/g; $text =~ s/\r/<br>/g; $text =~ s/\n/<br>/g; で確認画面上で表示されるtextareaの文章は改行されるのですが、 届いたメールには<br>と表示されてしまって困ってます。 PHPでは変換できるみたいなのですが、perlでも出来るのでしょうか?
- ベストアンサー
- CGI
- 携帯電話での<br>の変換
iモード(docomo)で 文字列 $text ="りんご<br>バナナ"を textarea 内に入れたくて $text = str_replace("<br>" , "\n", $text) としましたが、textarea 内の表示は「りんご<br>バナナ」となってしまいます。 $text = str_replace("<br>" , "\r\n", $text) $text = str_replace("<br>" , "\r", $text)と記述してみましたが、 textarea 内の表示はすべて「りんご<br>バナナ」となってしまいます。 textarea 内の表示を 「りんご バナナ」 にしたいのですが、どんなコードに変換したらいいのでしょうか? また、auとsoftbank では、どんな変換をすればいいでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- 改行コードの変換について
OS:Solaris2.6 改行コードをunixからms-dosへ、ms-dosからunixへ変換したいと思っています。 ながれとしては、ms-dosで作成したファイルをunixのほうで編集(プログラム) して、再びms-dosに戻すといったことがしたいと思っています。 そこで、 nkf -e aaa | tr '\r\n' '\n' > bbb nkf -e ccc | tr '\n' '\r\n' > ddd aaa:ms-dos ccc:編集後のファイル これでできると思ったのですが、dddの改行コードの表示がE'で Macintoshの改行コードになってしまします。 また、bbbのファイルですが改行が2回行われてしまいます。 例 aaa のファイルの内容 123 456 bbb のファイルの内容 123 456 どのようにすれば、解決できるか教えていただけないでしょうか? お願いします。
- ベストアンサー
- その他(OS)
- PHPで変数内改行コードが削除できません
PHPで変数内改行コードが削除できません お助けください。 ↓ *$field_value はDBのフィールドから取り出したデータです。 $field_value = str_replace(array("\r\n","\r","\n"), '', $field_value); DBにはCSVから書き込んでます。 そのさいの各行の最後のフィールドに改行コードが入って DBに登録されているようです。
- ベストアンサー
- PHP
- 改行コードが取り切れない
改行を取りたいのですが $memo = nl2br($memo); $memo = str_replace("\n",'',$memo); で、ソースを見ると <tr><td align=right>メモ:</td><td>テスト<br /> <br /> <br /> だよ</td></tr> となります。 <tr><td align=right>メモ:</td><td>テスト<br /><br /><br />だよ</td></tr> と1行にしたいのですが。
- ベストアンサー
- PHP
- 改行コードについて
HTMLフォームのテキストエリアで改行した場合の処理についてご質問します。 Windowsのローカル環境で試しています。 改行コードLFでPHPを作成しています。 ○改行コードの認識 LF(\n) Unix,Mac OS X CR(\r) Mac OS 9 CRLF(\r\n) ○テキストエリアからの入力値の処理 CRLF、CRをLFに変換しています。 $value= str_replace ("\r\n", "\n", $value); $value = str_replace ("\r", "\n", $value); このあとDBに値を格納しています。 ○出力の際の処理 DBから値を取得。 phpのprint関数で下記を出力。 <textarea >${value}</textarea> 上記処理で、ローカル、サーバともに正常に動作しています。 しかし改行コードがLF(\n)なのでCRLF(\r\n)のWindowsで表示したときには問題が起きそうな気がします(実際には正常に動作)。 なにかしっくりこなくて質問させていただきました。 よろしくお願いします。
- ベストアンサー
- PHP
- 改行コードの変換と削除
改行コード変換メソッドで$dataには配列形式のデータが入ります。 public function v_line($val, $arr = false) { $line = ''; if(is_array($val)){ return array_map(array($this, 'v_line'), $val); } return str_replace(array("\r", "\n"), $line, $val); } //メソッド実行 $this->v_line($data); この結果全ての改行コードが削除されます。これを特定のキーのみ削除ではなく"\n"に 統一させるように変換したいのですがどのようにすればできますでしょうか? //改行コード削除しないキー配列 $arr = array('comment01', 'comment02'); //$arrのキーのみ改行コードを変換しその他は改行コード削除 $this->v_line($data, $arr);
- ベストアンサー
- PHP
- Perlでの改行コードについて
<textarea>に入力された値をPOSTで渡し、ポスグレに書き込み、それをHTML上で表示する処理をしているのですが。 textareaで改行を入力した場合に、 DB内に改行が登録されません。 例: *textareaのwrapはsoftに設定してあります。 あいうえおかきくけこ さしすせそ と入力すると。 DBには 「あいうえおかきくけこ さしすせそ」 と登録され 表示では「あいうえおかきくけこさしすせそ」と表示されます。 ソースでみると 「あいうえおかきくけこ さしすせそ」と表示されています。 改行コードの置換がされていないのだと思い INSERT前に s/\r\n/<BR>/g; s/\r/<BR>/g; s/\n/<BR>/g; を使い置換をすると DBには何も登録されません。 よろしくお願いいたします。
- ベストアンサー
- Perl
お礼
ありがとうございます。 実はある程度システムとしては組みあがって動いちゃっているのです。 改行自体はデータとして特に必要が無い、という点と、 登録側の変更は一箇所ですみますが、表示しているページは結構大量にあるという点で、 コードの変更量が大幅に異なるのです。 過去のデータはあまり登録されていないので、楽な方をとろうというわけです。(^^;