PHP: проблема с возвратом preg_match_all () - PullRequest
0 голосов
/ 28 июня 2010

Я пишу этот быстрый скрипт для извлечения имен чатов из источника веб-страницы.Я собираю данные с помощью 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 ]

1 голос
/ 28 июня 2010
$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 />';
0 голосов
/ 28 июня 2010

Ушел и вернулся, и было довольно ясно, что случилось.Желаемые значения в массиве $ foo были помещены в другой массив.Я просто обернул свое заявление foreach() другим заявлением foreach() таким образом:

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

Работал без помехи.

...