PHP文字列から改行コードを取り除く方法

このQ&Aのポイント
  • PHPを使って、文字列から改行コードを取り除く方法を学びたいです。
  • 質問者はPHP初心者で、HTMLフォームからのPOST送信でデータをMYSQLテーブルに入れています。
  • 入力データに改行がある場合、それを一行に連続させたいですが、どのようにすればよいでしょうか?
回答を見る
  • ベストアンサー

PHPを使って文字列から改行コードを取り除く方法

PHP初心者ですが、宜しくお願いします。(簡単なことなのかもしれませんが、なかなかうまくいかないので質問させていただきました。) 環境PHP5.2.4 MYSQL14.12DISTRIB5.0.4 WINXP IE6.0 状況 HTMLフォームを作成し、テキストエリアからPOST送信し、 PHPを使って、MYSQLのtest_tテーブルにデーターをいれました。 入力データーに改行があるとき例えば 1エンター2エンター3エンター とした場合、下のように3行になります。 mysql> select * from test_t; +-----------+ | tekisuto | +-----------+ | 1 2 3 | +-----------+ 1 rows in set (0.00 sec) ★質問 改行コードをPHPで処理して、MYSQLに一行 123と連続で入力(空白とかいらない)ようにしたいのですが、どうしたらいいのでしょうか? HTMLからのデータの取得は以下のようにしています。 $tekisuto=$_POST["tekisuto"];

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5076/13261)
回答No.1

$tekisuto = preg_replace("/\n|\r/", "", $_POST["tekisuto"]);

tuy1964
質問者

お礼

t_ohtaさん、早速回答していただいてありがとうございます。 記載していただいたコードをコピペして、動作確認をしましたところ、おかげさまで、目的を達することができました。 大変助かりました。 本当にありがとうございました。

関連するQ&A

  • 改行されても空白がずれてしまいます

    カテゴリがMYSQLかもしれません。その場合はご指摘お願いします。 phpとmysqlと使って掲示板のような機能を作っています。 TEXTAREAフォームに改行して文字列を入力し、DBにINSERTで追加します。 表示させるときにSELECTして、nl2br( )を使っています。 表示の際、改行は実行されるのですが  空白(スペース)がTEXTAREAフォーム入力したときと違うように表示されます。 たとえばTEXTAREAフォームでは 本日  10:00~14:00      17:00~23:00 と入力したのにecho で表示させると 本日  10:00~14:00 17:00~23:00 というように改行した行の空白がずれてしまいます。 DBにINSERTするとき、DBから取り出すとき、取り出して表示させたとき、 どの段階でずれるという問題が起きているのでしょうか。 また、どういった対処をすればよろしいでしょうか。 どうかご教授お願いします。 以下がソースコードの一部です。 //入力して追加する部分 <FORM method="POST" action="test1.php"> <TEXTAREA NAME="test1" COLS="60" ROWS="7"></TEXTAREA> <INPUT type="submit" name="submit" value="追加"> で入力し送信して,POSTメソッドで受け取り $add_text = $_POST["test1"]; mysql_query("insert into `test`(`text`) VALUES('$add_text')"); 「test」というテーブルに追加しています。 //表示する部分 $result = mysql_query("select * from test"); $rows = mysql_num_rows($result); if($rows == 0){ } else{ while($row=mysql_fetch_array($result)){ echo nl2br($row['text']); }

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

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

    • ベストアンサー
    • PHP
  • 改行コードを保存できない。

    <textarea wrap="hard" name="sentence" rows="3" cols="30"></textarea> このフォームで、入力したデータは、 PostgreSQLのテーブルに保存されるように構成しました。 フィールドは、"text"型です。 いざそれを、phpでHTMLに呼び出すと、改行文字は無視されます。 実際に、データベースを開くと、その値はこのようになっていました。 "ああああ・・あああ・・・・ああ" 改行コードはどうやら、"・"2個を改行1つと扱って保存しているようでした。 phpで、・・を含む値をHTML呼び出す時、 ・・を<BR>として呼び出して、改行してしまう技はないでしょうか?

  • 改行コードを取りたい

    測定器からデータを取得してエクセルに張り付けるマクロを作っているのですが、 取得したデータをそのままセルに張り付けると(例:「test」という文字列を取得した場合) 「test    」 のようにセルにAlt+Enterを押して改行された様な感じになります。 空白はtrimで除去したのですが、改行はどうやって取れば良いのでしょうか?

  • 改行データPOSTできない

    mysql+php+htmlで作ってるんですが、POST後のページで改行が反映されません。 -------------------------------- 111.php -------------------------------- - 省略 - <body> <form action="222.php" method="post"> <input type="hidden" name="data2" value=<?php echo "$data1";?>> <input type="submit" value="編集"> </body> - 省略 - -------------------------------- 222.php -------------------------------- --省略-- <?php $data2 = $_POST['data2']; ?> <form> <textarea cols="80" rows="20" name="test"><? echo "$data2"; ?></textarea> </form> --省略-- -------------------------------- これだと222.phpで1行だけしか表示されません。変数に入れれないのでしょうか? お手数ですが、ご教示お願いします。 ちなみに111.phpの方も textarea にすると正常に値が渡せます。 でも表示したくないのでイヤです。 (急いで入力したので、タイプミス&コピペミスっぽいのは無視してくださいm(_ _)m)

    • ベストアンサー
    • PHP
  • 【php】改行にエスケープ文字が入る

    phpで  $_GET['a'] = stripslashes($_GET['a']); $_GET['a'] = mysql_real_escape_string($_GET['a']); $_GET['a'] → インサート と途中に stripslashes mysql_real_escape_string をはさんでから GETやPOSTを取得してるんですが改行が改行コードに変わってしまいます。 例えば質問フォームとかで  ---------------------------------------- 質問内容 ---------------------------------------- なんたら かんたら  ↓ サブミット ---------------------------------------- 投稿確認 ---------------------------------------- なんたら\n\rかんたら みたいなかんじです。 一旦文字コードをEUCにかえてから mysql_real_escape_stringを挟んだりしたりもしてみてますが 改行が改行コードになってしまいます。

    • ベストアンサー
    • PHP
  • MYSQLをPHPから呼び出したときに文字化けします。

    現在、HTMLでPOST形式でMYSQLにデータを送って、 別のページでそれをPHPで呼び出して HTMLで表にして参照するというページをつくっているのですが、 その中の一部が文字化けしてしまいます。 たとえば「未登録」は「未那俐/td>」などです。 入力した文字の中には文字化けしていないものもあるのですが・・・ これはどういう原因なのでしょうか・・・ ちなみに文字コードはEUCで統一、テキストエディタでの改行コードはCR+LFで設定しています。 教えてください!お願いします!

    • ベストアンサー
    • MySQL
  • 改行コード入り文字列を含むXMLの変換方法

    PHPを用いて、XMLからXSLTを経由しHTMLを出力するというプログラムを作成しています。 ほとんど完成しているのですが、最後に改行で問題が発生してしまい かなり困っています。 XML内に保存されている改行入りの文字列を HTMLできちんと改行されたまま表示したいのですが 繋がったまま出力されてしまいます。 ------------------------------------------------------- ※&lt;br /&gt;は、PHPで入力文章の確認をする際に  改行させたまま表示させたいので記述して  それを残したままXMLに保存しています。 <sample> <title>見出し1</title> <paragraph>  あいうえお&lt;br /&gt;  あいうえお&lt;br /&gt;   あいうえお&lt;br /&gt; </paragraph> <sample> ↓PHPでXSLTを通してHTMLに出力 見出し1 あいうえお<br />あいうえお<br />あいうえお ------------------------------------------------------- これを、改行された状態で表示できるようにしたいのですが なかなか上手くいきません。 何か、解決策が思い浮かぶ方がいらっしゃいましたら 是非、教えていただきたいです。 利用環境はPHP5です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 改行コードが半角スペースになってしまいます

    もしかしたらカテゴリはphpかも知れません。 よろしくお願いします。 phpとMySQLでWEBアプリを作っています。html上のtextareaフォームに入力した文字列を、phpを使ってMySQLにINSERTします。この文字列には改行(CRLF)も含まれます。 それをSELECTで参照し表示させると、改行が半角スペースに変換されてしまいます。 phpMyAdminで見てみるとちゃんと改行が入っています。 つまり、格納の段階ではちゃんと改行コードが入っているんですが、取り出すときに変換されてしまうようです。 この場合、どのように対処すればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • 改行コードが入ったデータの受け渡し

    教えて下さい。 現在、問い合わせページのような画面を作成し、その中で "TEXTAREA"に入力されたものを最終的にはデータベースの中 へ格納しようとしています。 画面の遷移としては、a.php(入力)⇒b.php(確認)⇒c.php(更新) というように3画面の構成で考えています。 その際に、最初の入力画面では"TEXTAREA"を使用している為、改行 等のデータも含まれてしまいます。 2画面目にはそのままPOSTで値を後れましたが、3画面目へは <INPUT type='hidden' ~ で飛ばしています。 しかし、その際に、当初画面上から入力された改行コードでデータが 切れてしまい、最後の更新画面では切れたデータしか取得できません。 改行コードを変換する為に、str_replace 等を使用してみましたが、 それでも上手くいきません。 このような改行を含むようなデータの受け渡しはどのようにするのが 良いのでしょうか。。。 教えて下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう