2010-06-28 7 views
0

J'écris ce script rapide pour extraire les noms de chatroom de la source d'une page Web. Je suis en train de saisir les données avec fopen() et fgets() et que tout retourne bien. Mon regex est /#[a-zA-z]+/, ce qui semble fonctionner. Cependant, je ne peux pas obtenir preg_match_all() pour retourner une liste concise de données.PHP: problème avec preg_match_all() retour

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

Retourne "ArrayArrayArrayArrayArrayArrayArrayArray ...".

print_r ($item); 

retours quelque chose le long ([0] => #channel1) Array ([0] => #channe2) Array ([0] => #channel3)...

Je ne suis pas sûr comment obtenir ce formatté correctement, une aide rapide?

+0

Selon que vous voulez que la sortie soit. Comment devrait-il ressembler? –

Répondre

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 />'; 
+0

Encore rien. Il ajoute simplement chaque valeur du tableau à 'string [longueur de la valeur]' – Francis

+0

Montrez-nous la valeur de $ contents et comment vous voulez que la sortie apparaisse –

0

Nous sommes allés à pied et sommes revenus et c'était assez clair ce qui se passait. Les valeurs souhaitées dans le tableau $ foo ont été enveloppées dans un autre tableau. J'ai simplement enveloppé ma déclaration foreach() avec une autre déclaration foreach() ainsi:

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

travaillé sans accroc.