2011-07-02 1 views
5

私はpreg_matchを使用して、文字列のスペースから#までの後に任意のテキストを取得しています。しかし、文字列に複数の機会がある場合、最初の文字列だけが返されます。これは私がこれまでpreg_match foreach

$text = '#demo1 #demo2 some text #blah2'; 
$check_hash = preg_match("/([#][a-zA-Z-0-9]+)/", $text, $hashtweet); 
foreach ($hashtweet as $ht){ 
echo $ht; 
} 

echo $ht;出力#demo1#demo1を持っているものであるとき、それを出力すべき前に#を持つすべての単語3。どんな助けでも大歓迎です。

答えて

13

preg_match_allを使用します。

例:

<?php 

$text = '#demo1 #demo2 some text #blah2'; 
$check_hash = preg_match_all("/([#][a-zA-Z-0-9]+)/", $text, $hashtweet); 
foreach ($hashtweet[1] as $ht){ 
    echo $ht; 
}