[PHP-users 7175] Re: table 内の要素を mb_ereg で抜き出すには

Naomasa Numajiri php-users@php.gr.jp
Fri, 26 Apr 2002 19:53:43 +0900


こんにちは、
# php4.1.2での確認です。

ereg()での確認だと
「'(<TR>.*?</TR>)+'」じゃなくて「'(<TR>.*?</TR>.?)+'」にすれば
進展しそうな感じになりました。
# ereg()で最小一致オプション「?」を使うとエラーになるので。

でも、最終的には「[PHP-users 6610]」の発想でやるしかないと思います。

以下で、理由が分かると思います。
------------------------------------------ 例
<?php
$a = '0123456789';

if( ereg('([0-9])+',$a,$m) )
{
        print_r($m);
}
?>
------------------------------------------ end

でわでわ

-- 沼


----- Original Message ----- 
From: "Osamu Shigematsu" <shige@ravi.ne.jp>
To: <php-users@php.gr.jp>
Sent: Friday, April 26, 2002 2:07 PM
Subject: [PHP-users 7157] table 内の要素を mb_ereg で抜き出すには


| 重松です。こんにちは。
| 
| mb_ereg(i) を使って、table 内の要素を抜き出せないかな、と考えています。
| 
| $html = <<<EOB
| <TABLE>
| <TR><TH>Apple</TH><TD>Mac OS X</TD></TR>
| <TR><TH>Micro$oft</TH><TD>Windoze eXPloitation</TD></TR>
| </TABLE>
| EOB;
| 
| $rows = array(); /* initialize as empty array */
| if(mb_eregi('(<TR>.*?</TR>)+',$html,$rows)){
| print_r($rows);
| }
| 
| のようなコードを書いてみたのですが、
| 
| Array
| (
|     [0] => <TR><TH>Apple</TH><TD>Mac OS X</TD></TR>
|     [1] => <TR><TH>Apple</TH><TD>Mac OS X</TD></TR>
| )
| 
| となり、
| 次の行の
| 
| <TH>Micro$oft</TH><TD>Windoze eXPloitation</TD>
| 
| にマッチしません。
| 
| \n の取り扱いを行の区切りとするかしないか、設定することはできますか。
| 
| また、現状 (PHP 4.2.0) でどのようにすれば、効率よく抜き出すことができるのでしょうか。
| 
| --
| Osamu Shigematsu
| mailto:shige@ravi.ne.jp
| 
| _______________________________________________
| PHP-users mailing list
| PHP-users@php.gr.jp
| http://ns1.php.gr.jp/mailman/listinfo/php-users