需求把长链接生成新浪短链接

    /**
     * 调用新浪接口将长链接转为短链接
     * @param  string        $source     默认调用官方的key
     * @param  array|string  $url_long  长链接,支持多个转换(需要先执行urlencode)
     * @param  string        $api         默认调用新浪微博的接口 自定义需要换成开发文档的地址
     * @return array
     */

        public function getSinaShortUrl($url_long , $source = "2849184197", $api = "http://api.weibo.com/2/short_url/shorten.json" )
        {
            // 参数检查
            if(empty($source) || !$url_long){
                return false;
            }
            // 参数处理,字符串转为数组
            if(!is_array($url_long)){
                $url_long = array($url_long);
            }
            // 拼接url_long参数请求格式
            $url_param = array_map(function($value){
                return '&url_long='.urlencode($value);
            }, $url_long);
            $url_param = implode('', $url_param); 
            // 请求url
            $request_url = sprintf($api.'?source=%s%s', $source, $url_param);
            $result = [];
            // 执行请求
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_URL, $request_url);
            $data = curl_exec($ch);
            if($error=curl_errno($ch)){
                return false;
            }
            curl_close($ch);
            $result = json_decode($data, true);
            return $result;
        }

原创文章 未经许可 禁止搬运!

最后修改:2023 年 07 月 25 日
您的赞赏是对我最大的支持。