1. TOP
  2. Webサービス
  3. Twitter
  4. TwitterのつぶやきにあるURLにリンクをはりたいときはpreg_replace関数と正規表現を使いましょう

TwitterのつぶやきにあるURLにリンクをはりたいときはpreg_replace関数と正規表現を使いましょう

|

Twitter_logo_blue

前回、Twitter RESTAPI1.1のGET search/tweetsからつぶやきを引っ張ってきたときに、URLがあった場合、どのようにリンクをつけるのかが分かりませんでした。

  • https://t.co/○○○○○○○

今回は、そのリンクをつける方法が分かったので、そのコードを紹介しましょう。

preg_replace関数と正規表現でURLを自動リンク

GET search/tweetsから引用したテキストの中にある、URLを正規表現にして、preg_replace関数を用いて、Twitterの検索画面に遷移させます。

$tweet['text']=preg_replace("/(http:\/\/t.co\/[a-zA-Z0-9]{10})/", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet['text']);

前回とちがうところは、preg_replaceの第2引数です。

"<a href=\"<?php echo $tweet\['user']['url']; ?>\\1\</a>"

のところを、

"<a href=\"\\0\" target=\"_blank\">\\0</a>"

に変更しています。

@、#、URLにリンクをはりたいときのコード

前回の記事と合わせて、@(スクリーンネーム)、#(ハッシュタグ)、URLにリンクをつけるためのコードは、以下の通りとなります。

<?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']);
?>

〔参考サイト〕