前回、Twitter RESTAPI1.1のGET search/tweetsからつぶやきを引っ張ってきたときに、URLがあった場合、どのようにリンクをつけるのかが分かりませんでした。
- https://t.co/○○○○○○○
今回は、そのリンクをつける方法が分かったので、そのコードを紹介しましょう。
preg_replace関数と正規表現でURLを自動リンク
GET search/tweetsから引用したテキストの中にある、URLを正規表現にして、preg_replace関数を用いて、Twitterの検索画面に遷移させます。
[php]
$tweet[‘text’]=preg_replace("/(http:\/\/t.co\/[a-zA-Z0-9]{10})/", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet[‘text’]);
[/php]
前回とちがうところは、preg_replaceの第2引数です。
[php]
"<a href=\"<?php echo $tweet\[‘user’][‘url’]; ?>\\1\</a>"
[/php]
のところを、
[php]
"<a href=\"\\0\" target=\"_blank\">\\0</a>"
[/php]
に変更しています。
@、#、URLにリンクをはりたいときのコード
前回の記事と合わせて、@(スクリーンネーム)、#(ハッシュタグ)、URLにリンクをつけるためのコードは、以下の通りとなります。
[php]
<?php
$tweet[‘text’]=preg_replace("/\s#(w*[一-龠_ぁ-ん_ァ-ヴーa-zA-Za-zA-Z0-9]+|[a-zA-Z0-9_]+|[a-zA-Z0-9_]w*)/u", " <a href=\"https://twitter.com/search/%23\\1\" target=\"twitter\">#\\1</a>", $tweet[‘text’]);
$tweet[‘text’]=preg_replace("/(@[A-Za-z0-9_]{1,15})/", " <a href=\"https://twitter.com/search/\\1\" target=\"twitter\">\\1</a>", $tweet[‘text’]);
$tweet[‘text’]=preg_replace("/(http:\/\/t.co\/[a-zA-Z0-9]{10})/", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet[‘text’]);
?>
[/php]
〔参考サイト〕