我正在使用Twitter和Facewbook API使用诸如bit.ly或TinyURL之类的服务来提取可能包含缩短的URL的帖子。我需要进行实时扩展以获取原始URL,然后将内容从该URL提取到我的应用中。

最佳答案

您可以使用CURL扩展短网址。

试试这个:

    function traceUrl($url, $hops = 0)
    {
        if ($hops == MAX_URL_HOPS)
        {
            throw new Exception('TOO_MANY_HOPS');
        }

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        $r = curl_exec($ch);

        if (preg_match('/Location: (?P<url>.*)/i', $r, $match))
        {
            return traceUrl($match['url'], $hops + 1);
        }

        return rtrim($url);
    }

您可以使用traceUrl('http://bit.ly/example')这样的功能。从某种意义上说,此功能是递归的,甚至可以找到缩短的短网址(如果曾经发生过)。确保设置MAX_URL_HOPS常量。我使用define('MAX_URL_HOPS', 5);
  • 基督教
  • 09-25 17:02
    查看更多