• ベストアンサー

データベースから取り出したテキストの改行

MYSQL+PHP+JAVASCRIPT にてサイトを作っています。 行き詰っております。助けてください。 MYSQLからPHPにてテキストデータをとりだし、JAVASCRIPTに引き渡したいのですが、上手くいきません。 -----状況----- データベースから変数$strを取り出し、次のコードでJAVASCRIPTの関数sampleに$strを渡しまます。 <input type="button" value="実行" onClick="sample('<?=$str?>')"> ここで、$strに改行が含まれていると、 <input type="button" value="実行" onClick="sample('こんにちは 太郎さん')"> のように2行に分割されたhtmlが書き出されてしまい、JAVASCRIPTでエラー(unterminated string literal)が出てしまいます。 この改行を変換してやる必要がありそうなのですが、その方法がわかりません。 以上、長い質問ですが、よろしくお願いいたします。

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

  • ベストアンサー
  • mflow
  • ベストアンサー率63% (42/66)
回答No.5

ちょび、直し。最初にCRを削除してからLFを\nに置換する。 <?php $str = "テスト\n改行あり"; $str = str_replace( "\r" , '' , $str); echo str_replace("\n",'\n',$str); ?>

xyz_1990
質問者

お礼

みなさま、ご回答ありがとうございます。 ANo5で解決しました。 ANo4では改行が完全になくなってしまい、ちょっと不足でした。 改行がLだけでなく、LFだったようです。

その他の回答 (4)

回答No.4

DBに格納してある改行コードの問題かもしれません。 改行コードがLFならば\nなのですが、CR+LFならば対応するのは\r\nになります。 ですので $str = str_replace("\n", "", $str); を $str = str_replace("\r\n", "", $str); にして試してみてください。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

JavaScriptの掲示板で http://oshiete1.goo.ne.jp/qa2488999.html ですでにphpでの対処法が示されているのに、そのことに関してどんな結果を得られたのかを書かずに同じ質問文では、同じ回答しか貰えないよ。 >データベースから変数$strを取り出し、 この部分に相当するプログラムソースが問題なんですけど。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんの補足。 どうせやるならこうでは? $str = str_replace("\n", "\\n", $str);

  • 961053
  • ベストアンサー率27% (3/11)
回答No.1

$str の中の改行コードを除去してみてはいかがでしょうか? 例えば、 $str = str_replace("\n", "", $str); //たぶん改行コードって\nだったはずです。 という感じに。見当違いだったらゴメンナサイ。

xyz_1990
質問者

補足

ご回答ありがとうございます。 $str = str_replace("\n", "", $str); や $str = str_replace("\n", "\\n", $str); など、いろいろ試したのですが、だめでした。 $str = "こんにちは 太郎さん"; で試すと上手くいくのですが、DBから取り出した変数ではうまくいきません。

関連するQ&A