[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