9

Twitter スタイルの #ハッシュタグ付きのテキストがあります。無制限の数の #hashtags を含む可能性のあるテキストの本文を解析し、ハッシュタグのテキストを取得して、それらすべてを<a href="tag/[hashtag text]">[hashtag text]</a>

私はこれを行う方法について多くのことを考えてきましたが、正規表現でこの種の関数を書くのは本当に苦手です。

テキスト例:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus #tristique non elit eu iaculis. Vivamus eget ultricies nisi. mauris condimentum scelerisque の Vivamus hendrerit。Donec nibh mauris, pulvinar et #commodo a, porta et tellus. Duis eget ante gravida、convallis augue id、blandit lectus。Mauris euismod commodo mi ut fringilla. Sed felis magna、rhoncus vitae mattis varius、sagittis a eros。Donec eget porta ipsum. #Mauris sed mauris ante. サスペンディス・ポテンティ。#pretium #augue を作成してください。整数 cursus scelerisque consequat。

4

6 に答える 6

4

これは UTF-8 エンコーディング テキストで機能し、コンテンツ内のタグの前に # (ハッシュ) を表示します

preg_replace('/(\#)([^\s]+)/', ' <a href="tag/$2">#$2</a> ', $content);
于 2014-03-22T08:50:08.520 に答える
1

これを試して:

preg_replace('/(\#)([^\s]+)/', '<a href="tag/$2">$2</a>', $your_content_here);

これにより、次のようになります。This is a #hashtag

これに: This is a <a href="tag/hashtag">hashtag</a>,

あなたが持っていると仮定すると$your_content_here = 'This is a #hashtag';

于 2013-06-21T22:41:50.593 に答える
0

タグ間にスペースがなくても、テキスト内のすべてのタグへのリンクを抽出して追加します。

$text = "#test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus #tristique non elit eu iaculis. Vivamus eget ultricies nisi. Vivamus hendrerit at mauris condimentum scelerisque. Donec nibh mauris, pulvinar et #commodo a, porta et tellus. Duis eget ante gravida, convallis augue id, blandits.Repost#high#fashion#photography#Ishan#portart#photo#Shoot#EishaChopra#luxe#twisty#creative#destination#style#Actor#model#beauty#gorgeous#makeup#and#hair#kamaldeep#fashionista#trending ";
$text = preg_replace('/#(\w+)/', ' <a href="tag/$1">$1</a>', $text);
echo $text;
于 2016-12-15T07:39:34.737 に答える