2012-01-21 9 views
2

私がしようとしているのは、$_POSTメソッドを使ってテキストエリアからテキストを取り出し、先頭に ' - 'をつけて各行を書きます。これは私がこれまでに得たものです。各行にテキストエリアがありますか?

$lines = $_POST["textarea"]; 
foreach ($lines as $line) 
    echo " - " . $line . "<br />\n"; 

(これはphp.netから取得され、私はPHPに限りがプログラムされていない)、私はそれを実行すると、これは私が得るすべてである:

警告:foreachのために供給無効な引数() にI:\ xamppの\ htdocsに\

generate.php任意の助けいただければ幸い:)

+0

おそらく無関係です: '$ _POST [" textarea "]'の後ろに2つのセミコロンがあります。 –

答えて

1

$_POST["textarea"];はnoですアレイ。あなたは最初の改行文字で分割する必要があります。

$lines = explode("\n", $_POST['textarea']); 
4

foreachは、最初の引数として配列を期待しています。 $linesを文字列(おそらく改行文字を含む)として渡しています。

各行を別々に処理するには、まず入力を行の配列に分割する必要があります。あなたは

$lines = explode("\n", $_POST["textarea"]); 

あなたが最初のパラメータとして渡すものは何でもによって区切られた部分文字列の配列に入力文字列を分割explode機能であることを行うことができます。

+0

より良い説明ですが、私は最初になりたかったです。あなたは私の+1を持っています:-) – timing

+0

ブラウザがテキストエリアに改行をどのように提出するのかよくわかりませんが、ユーザーのOSがそれらを扱うときにそれを送信すると思います。これは、ユーザーのOSによって '\ r'と' \ n'の組み合わせが異なることを意味します。私は、改行がブラウザによって提出されたときに標準化されていないことを100%確信しているわけではありませんが、検証したいものかもしれません。 –

関連する問題