常用自定义函数之curl

网站技术 ayflying 1822℃ 评论

首先来说以下curl

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。

但是有时候只用一些简单的操作需要进行复杂的配置,这里只用封装成一个函数就可以解决配置的麻烦了。

/**
 * curl函数
 * @param string $url 访问地址
 * @param array|null $post post参数
 * @param int $time 超时时间
 * @param string|null $type post类型
 * @return bool|string 返回收到的结果
 * @author An Yang
 * @time 2020/7/7 20:05
 */
function curl(string $url, array $post = NULL, int $time = 30, string $type = null)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, $time);
    if (stripos($url, "https://") !== FALSE) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1    
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    if (isset($post)) {   // post数据
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        if (isset($type)) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/' . $type]);
        }
    }
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

第一个参数为网址,第二个参数为需要post的数组,可以为空。

使用例子

如果不使用post,直接用get就可以不用第二个参数

echo curl("http://blog.7cuu.com");

如果需要post,那第二个参数就需要带上post的数组了

$post = array(
    'username' => 'admin',
    'password' => 'admin'
);
echo curl("http://blog.7cuu.com",$post);

这样就可以了。

转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » 常用自定义函数之curl

高效,专业,悠悠博客

联系我们