Twitter::clickable PHP Method

clickable() public static method

Makes twitter links, @usernames and #hashtags clickable.
public static clickable ( stdClass $status ) : string
$status stdClass
return string
    public static function clickable(stdClass $status)
    {
        $all = [];
        foreach ($status->entities->hashtags as $item) {
            $all[$item->indices[0]] = ["https://twitter.com/search?q=%23{$item->text}", "#{$item->text}", $item->indices[1]];
        }
        foreach ($status->entities->urls as $item) {
            if (!isset($item->expanded_url)) {
                $all[$item->indices[0]] = [$item->url, $item->url, $item->indices[1]];
            } else {
                $all[$item->indices[0]] = [$item->expanded_url, $item->display_url, $item->indices[1]];
            }
        }
        foreach ($status->entities->user_mentions as $item) {
            $all[$item->indices[0]] = ["https://twitter.com/{$item->screen_name}", "@{$item->screen_name}", $item->indices[1]];
        }
        if (isset($status->entities->media)) {
            foreach ($status->entities->media as $item) {
                $all[$item->indices[0]] = [$item->url, $item->display_url, $item->indices[1]];
            }
        }
        krsort($all);
        $s = $status->text;
        foreach ($all as $pos => $item) {
            $s = iconv_substr($s, 0, $pos, 'UTF-8') . '<a href="' . htmlspecialchars($item[0]) . '">' . htmlspecialchars($item[1]) . '</a>' . iconv_substr($s, $item[2], iconv_strlen($s, 'UTF-8'), 'UTF-8');
        }
        return $s;
    }

Usage Example

コード例 #1
0
ファイル: Tweet.php プロジェクト: corporateanon/cisco-twitter
 function __construct($status)
 {
     $this->status = $status;
     $this->readable = \Twitter::clickable($status);
     $this->link = "https://twitter.com/{$status->user->screen_name}/status/{$status->id_str}";
     $this->mobileLink = "https://mobile.twitter.com/{$status->user->screen_name}/status/{$status->id_str}";
 }
All Usage Examples Of Twitter::clickable