0

この簡単なスクリプトを作成して、Webページのソースからチャットルームの名前を抽出します。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 )...

これを適切にフォーマットする方法がわかりません。簡単なヘルプはありますか?

4

2 に答える 2

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 />';
于 2010-06-28T12:03:56.973 に答える
0

立ち去って戻ってきたが、何が起きているのかは明らかだった。$foo 配列内の目的の値が、別の配列にラップされていました。foreach()このように、ステートメントを別のforeach()ステートメントで単純にラップしました。

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

問題なく動作しました。

于 2010-06-28T13:06:51.770 に答える