2011-07-02 35 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; 
}