• 締切済み

...データを一行ごと別々の変数

<TEXTAREA rows="8" cols="20"></TEXTAREA> の内容をPOSTで送り、受け取ったデータを一行ごと別々の変数に入れたいのですが、 どうすればいいのでしょうか?

みんなの回答

  • randman
  • ベストアンサー率51% (17/33)
回答No.2

<TEXTAREA rows="8" cols="20" name="textarea"></TEXTAREA> だったら、 if($_POST["textarea"]!=="") { $buffer=$_POST["textarea"]; $encode=mb_detect_order($buffer); $buffer=mb_convert_encoding($buffer,"UTF-8",$encode); $lines=preg_split("/\r\n|\r|\n/",$buffer,-1,PREG_SPLIT_NO_EMPTY); foreach($lines as $l) { //ここで処理する。 } } かな。細かいところで間違ってるかも。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

とりあえず受け取ったテキストエリアの内容を\nでpreg_splitまたはsplit関数を使って配列に入れ、入力チェックをしながら変数に格納していく、という感じになるのでは。

参考URL:
http://jp.php.net/manual/ja/function.preg-split.php
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPで送信された値は、すぐ変数に入れるものなの?

    PHPのプログラムについて、3つほど質問です。 問1 送信された値を使うとき、たとえば、$_POST["a"] というような書き方になると思いますが、 こうした送られた値というのは、$a=$_POST["a"];というようにして、すぐに変数に入れたほうが いいのでしょうか? おかしな値が入力されてきた場合のチェックとして、 if (!is_numeric($_POST["a"])){$_POST["a"]=1;} とか、 for ($i=1;$i<=$_POST["b"];$i++){ } というような使い方はしませんか? 問2 テキストエリアに、プログラムで算出した文字列を10件ほど出力させたいとき、 <textarea name="iroiro" rows="20" cols="50"> <?php ?> </textarea><br> として、<?php ~ ?> の間にプログラムを書き込めば、出力されますよね。 ただ、このプログラムが100行くらいになると、全体の流れが分からなくなって くると思います。 こんなときは、 <textarea name="iroiro" rows="20" cols="50"> <?php //データ表示用のサブルーチンへ飛ばす fun_data_hyouji() ?> </textarea><br> とかなんとか、書いて分かりやすくしようとしているのですが、業務にたずさわっている 方は、どんな書き方をするのでしょうか? そのままHTMLのなかの上記の位置へ書いて行く、サブルーチンを作って処理を飛ばす、などのご意見 を聞かせてください。 (というのも、参考にしているテキストが、HTMLとPHPが混ぜこぜになっていて、規模が 大きくなると、読みにくくなると思うからです) 問3 上記の問題で、サブルーチンを作るなら、どのあたりに作りますか? 別ファイルを作って呼び出す、</html>より下に書く、<body>の直後に書くなど、教えてくだ さい。ただし、このルーチンは、テキストエリアの出力しか使われないものとします。

    • ベストアンサー
    • PHP
  • textareaのデータのcgiでの受け取り方

    textareaのデータの受け取り方を教えてください。 下記のようなtextareaを作って、データを入力したとします。 <textarea name="command" rows="10" cols="50"></textarea> -----------textarea---------------------- aaa bbbb ccccc ----------------------------------------- この入力データをcgi(perl)で変数として、改行なしで一行づつ受け取りたいと考えています。データを配列(改行なし)として受け取れたら、なおよしです。どのようなコードを書けばよいのでしょうか? よろしくおねがいします。

    • ベストアンサー
    • CGI
  • 改行データ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
  • 変数を使って行選択

    おそらく他愛のない質問だとは思うのですが教えてください。 Rows(3:3)select とやると、アクティブなシートの3行目が選択されると思います。 3のところを両方とも変数にするとか、 たとえばforを使ってカウントアップさせている変数の値と同じ行を 選択させるにはどのように入力すれば良いものでしょうか? ご教授願います。

  • テキストエリアの幅を10桁までにしてスクロールさせないようにしたい

    タイトルのままなんですが、可能でしょうか? <textarea name="textarea" cols="40" rows="10">テスト</textarea> あと、テキストエリアに<pre>タグをつけると改行が入ってしまい、 1行分テキストエリアから離れてしまいます・・・。 テストタイトル<br> <pre><textarea name="textarea" cols="40" rows="10">テスト</textarea></pre> すみません、どなたかわかる方いらっしゃいますか? 教えてください(^^

    • ベストアンサー
    • HTML
  • 改行するには? FORMで入力されたデータ

    下記のFORMで入力 <TEXTAREA rows="20" cols="53" name="name3"></TEXTAREA> で$nameに入力した複数行を php <?php print "メッセージ→"; print $name3; ?> で、$nameを改行しながら 表示したいのですが?

    • ベストアンサー
    • PHP
  • 記号()が混ざった正規表現について

    さらに、申し訳ありません。 文字列:<textarea name="sss1" cols="100" rows="12" onClick="FormName(this)">abcde</textarea><textarea name="sss2" cols="100" rows="12"></textarea> から、 abcde を抽出したく、 下記のようにコーディングしましたが、 abcde</textarea><textarea name="sss2" cols="100" rows="12"> になってしまいます。 正規表記のコーディングを教えてください。 よろしくお願いします。 <?php $a = "<textarea name=\"sss1\" cols=\"100\" rows=\"12\" onClick=\"FormName(this)\">abcde</textarea><textarea name=\"sss2\" cols=\"100\" rows=\"12\"></textarea>"; mb_ereg("<textarea name=\"sss1\" cols=\"100\" rows=\"12\" onClick=\"FormName(this)\">(.*)</textarea>",$a,$b); print "$b[1]"; ?>

    • ベストアンサー
    • PHP
  • PHPでテキストエリアのデータを配列に入れるには?

    テキストエリアに入力されたデータ(正確にはURL)を配列で取得して、別のテキストエリアに加工して出力する、という処理を作ろうとしています。 <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post"> <textarea name="url_from" rows="20" cols="50"> </textarea><br> <input type="submit" value="作成"><input type="reset" value="リセット"> </form> ためしに、 http://www.google.co.jp/ http://www.yahoo.co.jp/ と入力して、どんな入り方をしているのか確かめてみました。 $url_from という変数に入れて取り出してみたところ、上記のふたつのURLデータのあいだに 長い空白が入っているみたいでした。 そこで、このデータを配列に入れようとしているのですが、入れ方が分からずに困っております。 入力できるデータ数は、最大で20件(20行)としていますが、5件のときもあれば10件のときも あるという仕様です。 「切り分ける関数」のようなものがあれば、できそうな気がするのですが…。 みなさんなら、どのようにして配列に組み込もうとしますか?

    • ベストアンサー
    • PHP
  • rowsとcolsの意味

    textareaタグとかに出てくるrowsとcolsについて悩んでいます。 どちらかが行でどちらかが列というのは分かるのですが・・。 和英辞典で列と行について調べてみると両方ともでrowが出てきて混乱してしまいました。 cols="20" rows="10"と指定したら横20縦10文字分確保するという風に理解してしまって良いのでしょうか? 後colsって何かの英単語の略なのでしょうか?

  • テキストエリアの改行を変換(初心者

    <textarea rows="5" cols="10" name="myname">AAA BBB CCC</textarea> 上の内容を送信して、 AAA BBB CCC こんな感じで改行してファイルに書き込みしたいのですが、そのままでは改行されず1行で書き込まれてしまいます。 1つずつ改行するにはどうすればいいのでしょうか よろしくお願いします。

    • ベストアンサー
    • Perl