PHP:preg_match_all()返回时出现问题

时间:2010-06-28 11:56:51

标签: php format preg-match-all pcre

我正在编写这个快速脚本来从网页源中提取聊天室名称。我正在用fopen()和fgets()抓取数据,并且所有都返回正常。

我的正则表达式是/#[a-zA-z]+/,它确实有效。但是我无法让preg_match_all()返回简明的数据列表。

preg_match_all("/#[a-zA-z]+/", $contents, $foo, PREG_SET_ORDER);
foreach($foo as $item) print $item;

返回“ArrayArrayArrayArrayArrayArrayArrayArray ...”。

print_r ($item);

沿( [0] => #channel1 ) Array ( [0] => #channe2 ) Array ( [0] => #channel3 )...

返回一些内容

我不确定如何正确地进行格式化,任何快速帮助?

2 个答案:

答案 0 :(得分:1)

$contents = '#channel1 #channel2 #channel3';

preg_match_all("/(#[a-zA-z0-9]+)/", $contents, $foo, PREG_SET_ORDER);
var_dump($foo);
echo '<hr />';

foreach($foo as $item)
   print $item[1].'<br />';

答案 1 :(得分:0)

走开然后回来,很明显是什么。 $ foo数组中的所需值包含在另一个数组中。我只是简单地用foreach()语句包含我的foreach()语句:

foreach($foo as $item) {
   foreach($item as $bar) {
     print $bar . "<br />";
   }
}

毫不费力地工作。