[PHP-users 30247] Re: ファイルから指定した文字列の中間を切り抜くには??

Suruo Kajino gamble_to_happiness @ msn.com
2006年 9月 5日 (火) 23:02:06 JST


寺尾 様
皆 様

勉強不足ですみませんでした・・・
一通りマニュアルは読んでいるんですが今一意味がわかりづらいので
この場をお借りして勉強していきたいと思っております。
改めてよろしくお願いします。

寺尾様に教えてもらった様に実行した結果見事表示できました。
しかし、コードを見ていて思ったのが【$birth[1]】という点です。
気になって【print_r($birth)】を実行した結果

Array ( [0] => ★1984/10/01★ [1] => 1984/10/01 )

と表示されました。
この★1984/10/01★は要らないのですがどうしても
取得してきてしまうのでしょうか??

例えば【test123.txt】と言うファイルがあったとしてその中に

私の好きな動物は
1. - ネコ - です。
2. - 犬 - です。
3. - とら - です。

と言うファイルがあったとして【. - 】【 - です】の間の
動物名だけを
Array ( [0] => ネコ [1] => 犬 [2] => とら )
とするいい方法はありませでしょうか??

よろしくお願いします。

> -----Original Message-----
> From: php-users-bounces @ php.gr.jp [mailto:php-users-bounces @ php.gr.jp]
On
> Behalf Of M.Terao
> Sent: Tuesday, September 05, 2006 6:07 PM
> To: PHP-users ML
> Subject: [PHP-users 30246] Re: ファイルから指定した文字列の中間を切り
抜くに
> は??
>
> 寺尾です。
>
> ファイル操作の基本がおかしいですね。
> とりあえずマニュアルを一度読んだ方が良いかも・・・。
>
> <?php
>   $fp = fopen("test.txt",r);
>   while(!feof($fp)){
>     if(mb_ereg("★(.*)★",fgets($fp,256),$birth)){
>       echo $birth[1];
>     }
>   }
>   fclose($fp);
> ?>
> こんな感じかな?
>
>
> > 寺尾 様
> >
> > 早々のご回答ありがとうございます。
> > 早速いろいろ試してみましたが思うように動いてくれません。
> > こんな感じ??↓↓
> >
> > <?php
> > $fp = fopen("test.txt",r);
> > mb_ereg("★(.*)★",$fp,$birth);
> > echo $birth;
> >
> > fclose($fp);
> > ?>
> >
> > 上記で実行すると下記エラーが出てきます。
> > Warning: mb_ereg() expects parameter 2 to be string, resource given
in
> > C:\Program Files\Apache
Group\Apache2\users\test\public_html\test.php on
> > line 9
> >
> > いまいちうまくいきません・・・
> >
> > よろしくお願いします。
> >
> > > -----Original Message-----
> > > From: php-users-bounces @ php.gr.jp
[mailto:php-users-bounces @ php.gr.jp]
> > On
> > > Behalf Of M.Terao
> > > Sent: Tuesday, September 05, 2006 2:45 PM
> > > To: PHP-users ML
> > > Subject: [PHP-users 30243] Re: ファイルから指定した文字列の中間を
切り
> > 抜くに
> > > は??
> > >
> > > 寺尾です。
> > >
> > > ごめんなさい。間違えてましたね。
> > >
> > > $birth = mb_ereg_replace(".*★(.*)★.*","\\1",$data);
> > > で一応取れますが、これだとおかしいので、
> > > mb_ereg("★(.*)★",$data,$birth);
> > > echo $birth[1];
> > > かな
> > >
> > >
> > > > 寺尾です。
> > > >
> > > > 一行ずつ読み込んで、
> > > > 正規表現使うのが一番簡単なんじゃないかな?
> > > >
> > > > $fp = fopen("test.txt",r);
> > > > while(!feof($fp)){
> > > >   $data = fgets($fp,256);
> > > >   $birth = mb_ereg_replace("★(.*)★","\\1",$data);
> > > >   if($birth){
> > > >     echo $birth
> > > >   }
> > > >   unset($birth);
> > > > }
> > > > fclose($fp);
> > > >
> > > > かなり適当ですがこれで一応取れないかな?
> > >
> > >
> > >
> > > _______________________________________________
> > > PHP-users mailing list  PHP-users @ php.gr.jp
> > > http://ns1.php.gr.jp/mailman/listinfo/php-users
> > > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > > http://www.php.gr.jp/php/novice.php3
> >
> > _______________________________________________
> > PHP-users mailing list  PHP-users @ php.gr.jp
> > http://ns1.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > http://www.php.gr.jp/php/novice.php3
> >
>
> --
> レバレジーズ 寺尾 <terao @ leverages.jp>
>
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内