WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:php テキストを1行ずつ配列に代入するには

0:[投稿] あのに [2008/02/18 01:41 ] [環境:IE6 WinXP-Pro カゴヤのレンタルサーバー 40Gのプラン]

はじめまして。最近phpを勉強しているのですが行き詰ってしまいました。

フォームからテキストデータを受け取り、
それを1行ずつ配列に代入していきたいのですがうまくいきません。

$aaaa = $_POST["aaaa"]; aaaaはテキストデータです。


受け取ったデータを半角スペースで区切っても(区切れてない?)
半角での区切り方が間違っている?

$data = explode( ' ', $aaaa );
for( $i = 0; $i < count( $aaaa ); $i++ ) {
print $data[ $i ]."<br><br>";

nl2brで改行してsplit('<br />',$aaaa)で分割というのもできず、
どうすればいいかわかりません。

ps.
私の行いたいことはテキストデータから、ある特定の文字を拾って、
特定の文字が書かれた行だけを表示していくと言うものです。
テキストのデータは下のような数行の羅列です。

あああ・・・11〜22
いいい・・・22〜AA
ううう・・・33〜44
えええ・・・44〜AA

上記のようなデータから、AAの含まれた行を抜き出し、
『・・・』で分割して『いいい』と『えええ』のみを書き出したいと言うことです。

まず、上記の文字列を配列$data[]に入れて、1行ずつAAがあるか調べます。
もしAAが含まれていたら、その配列を・・・で分割して、
左側を書き出したいのです。


よろしくお願いいたします。

phpのバージョンは5です。


1:[回答] tk [2008/02/20 17:34 ]

>フォームからテキストデータを受け取り、
>それを1行ずつ配列に代入していきたいのですがうまくいきません。
エ〜ト、こういう事でしょうか
<html>
<form method="POST">
<p>
<textarea cols=20 rows=9 name="text">
あああ・・・11〜22
いいい・・・22〜AA
ううう・・・33〜44
えええ・・・44〜AA
</textarea>
<input type="submit" value="test">
</p>
</form>
<?php
  $a = $_POST['text'];
  $data = explode("\n",trim($a));
  foreach ($data as $v)
  {
     echo $v."<br><br>\n";
  }
?>
</html>


count( $aaaa )はcount($data)のまちがえですよね。


2:[完了] あのに [2008/02/22 00:14 ]

tkさん、ご回答ありがとうございます。

おっしゃる通りです!
なるほど。改行コードを入れればいいのですね。
しかも、すごくすっきりとしたコードで見やすいです。
foreachの使い方がいまいち理解できてませんでした。

勉強になります。

これでいくと$vを調べて条件に合えばと・・・
ゴールが見えました。
さっそく試してみます。ありがとうございました。

ps.
おっと・・・
count( $aaaa )はcount($data)です。すみません。


3:[完了] あのに [2008/02/22 02:40 ]

今試したところ、tkさんに教わった通り行い、
上手くいきましたことをご報告させていただきます。

大変助かりました。

また何かありましたらご助言のほど、
よろしくお願いいたします。

ありがとうございました。


4:[回答] テスト [2010/04/19 09:50 ]

テスト



[戻る]