1

やあみんな私は以下を使用しています:

$pos1 = strpos($currentStatus, '#');
$pos2 = strpos($currentStatus, '#', $pos1 + strlen('#'));

これは、最初のハッシュタグを検出し、2番目のハッシュタグを探す場合に、2番目のハッシュタグを取得することです。印刷すると、残りの文字列が表示されます。たとえば、次のようになります。

$code = "Hi lets have #funfgs and than more #funny yup yup";
$pos1 = strpos($code , '#');
$pos2 = strpos($code , '#', $pos1 + strlen('#'));

echo substr($code , $pos2);

結果:#funny yup yup

だから私はそれに接続ワードが付いたハッシュタグが欲しいのですが、残りは捨てられます...どうすればこれを行うことができますか?

デビッド

編集:

私が欲しいもの:#funny

4

3 に答える 3

3

あなたの心配の答えはpreg_match関数を使うことです。

だから、あなたの使用法のために

$code = "Hi lets have #funfgs and than more #funny yup yup";
$pos1 = preg_match( "/.*#(\S+)/", $code , $match );
print_r( $match[1] );

#試合用にを含めることもできます。これがあなたがそれをする方法です:

$pos1 = preg_match( "/.*(#\S+)/", $code , $match );
echo $match[1];
于 2013-03-22T05:18:35.203 に答える
2

これを試して :

$code = "Hi lets have #funfgs and than more #funny yup yup";

preg_match_all('/#(?P<hash>\w+)/',$code,$match);

echo "<pre>";
print_r($match['hash']);

ここでは#、配列から任意の単語を選択した後、すべての単語を取得します$match['hash']

あなたの質問で言及されたケースについては、echo $match['hash'][1];

于 2013-03-22T05:24:42.540 に答える
1

explode関数を使用できます。

$code = "Hi lets have #funfgs and than more #funny yup yup";
$pos1 = strpos($code , '#');
$pos2 = strpos($code , '#', $pos1 + strlen('#'));

$hashtag = explode(' ', substr($code , $pos2));

echo $hashtag[0];
于 2013-03-22T05:22:11.963 に答える