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