• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpとhtml間のデータ送信時「テキスト改行」処理について)

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

このQ&Aのポイント
  • phpとhtml間のデータ送信時における「テキスト改行」の処理について調査しています。具体的には、テキストエリアの値をPOSTで送信し、改行が正しく表示されるかどうかを確認したいと思っています。質問文の流れに沿って、詳細な手順と疑問点を解説しています。
  • データ送信時に発生する改行の表示に関する問題について、質問文で詳細に調査を行いました。テキストエリアの値をPOSTで送信し、その値が正しく改行表示されるかどうかを検証しています。また、Smartyを使用したページ間のデータ受け渡しについても具体的な手順を記載しています。
  • phpとhtml間でのデータ送信時における「テキスト改行」の処理について、質問文の流れを詳細に解説しています。テキストエリアの値をPOSTで送信し、改行の表示に関して疑問点が発生しているため、具体的な手順と解決方法をまとめています。Smartyを使用したページ遷移におけるデータの受け渡しについても説明しています。

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

  • ベストアンサー
回答No.2

初回答です。言葉足らずだったらごめんなさい。 まず、 >> 3:\nは発生してPOSTでa.phpにきているのか? は、はっきりとは覚えていませんが、<textarea></textarea>に 入っている文字列をプログラムで受け取った場合、文字列には改行文字が入っていたはずです。 $z = str_replace("\n","hogehoge",$z); print($z); としてみて、改行位置にhogehogeが入っていれば、改行文字は\n ということになるのではないでしょうか。 置換されていない場合は、\nを他の文字に置き換えて試してみれば よいのでは? 次に、 >> 6-1:<br />を削除してhtmlへ送っているのに改行表示されるのか? >> 7:\nしか入っていない文字列をブラウザ表示して、なぜ改行表示されるのか? です。 $zには改行文字\nが入っています。 (例えば、$z="aaa\nbbb\n"とします。) この状態で、 print("<textarea>\n"); print($z); print("</textarea>\n"); を実行すると、HTML上では、 <textarea> aaa bbb </textarea> となり、WEBブラウザで見ると、 --------- |aaa |bbb --------- というテキストエリアとして表示されます。 (実際にHTMLを書いて、WEBブラウザで表示してみるとわかります。) 最後に、 >> 6-2:dbでは\nが改行として認識されるのか? です。 これはOS等の環境によって変わってくる可能性はあると思いますが、 大雑把に言って、プログラムから改行文字をDBに送った場合、 DBの方でも改行文字として認識してくれるはずです。

haruruha
質問者

お礼

ありがとうございます! ブラウザは固定された(?)\nは改行として読み取るという事でしょうか。現在テスト環境にいないので、すぐに取り掛かれないのがもどかしいですが、月曜に早速テストしてみようと思います。 $zに来ている改行文字がなんなのかを調べてみます。 1人で煮詰まってたので、本当にありがとうございました。

その他の回答 (2)

回答No.3

>> ブラウザは固定された(?)\nは改行として読み取るという事でしょうか。 に対する補足です。 <!-- HTML sample --> <textarea> 「文章」 </textarea> <!-- end of HTML sample --> HTMLで<textarea>タグを上記のように記述すると、「文章」が複数行なら、 Webブラウザに表示されるテキストエリア内の「文章」も複数行になります。 ですから、プログラムで、 print("<textarea>\n"); print($z); //<-- $zには改行(\n)が含まれています。 print("</textarea>\n"); と記述すると、プログラムからWebブラウザに送られるHTMLソースは 上記の<!-- HTML sample -->と同様になり、$zの改行が反映される というわけです。

haruruha
質問者

お礼

なるほど…改行反映されるんですね。 度々ありがとうございます。感謝します!

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> str_replace("<br />,"","$z) 本当にこのコードを書かれているとすると、 ダブルクォーテーションとカンマの位置関係が 正しくないように見えます。 str_replace("<br />", "", $z) ではないのでしょうか?

haruruha
質問者

お礼

細かいところを見ていただいてありがとうございます。 これは、質問作成時の記載ミスです、実際のコードはご指摘通りのカンマ位置で書いてあります。 1人で煮詰まってたのでご指摘頂けて嬉しかったです。 ありがとうございました。

関連するQ&A