账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php的curl扩展无法发起https请求
    19
    0

    很奇怪的是,file_get_content函数可以对https地址发起请求并且收到响应报文,但是curl就不可以,这是什么原因呢?我已经安装了openssl扩展。

    function fetch($url, $cookie=null, $postdata=null, $headers=null){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        echo "$url\n";
        if (!is_null($headers)) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        if (!is_null($postdata)) curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
        if (!is_null($cookie)) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        $re = curl_exec($ch);
        curl_close($ch);
        return $re;
    }
    
    echo fetch("http://baidu.com"); // 有输出
    echo fetch("https://baidu.com"); // 无输出
    Administrator@changwei MINGW64 /d/www/test
    $ php ./test.php
    http://baidu.com
    <html>
    <meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
    </html>
    
    Administrator@changwei MINGW64 /d/www/test
    $ php ./test.php
    https://baidu.com
    
    $ php -m
    [PHP Modules]
    bcmath
    bz2
    calendar
    Core
    ctype
    curl
    date
    dom
    ereg
    fileinfo
    filter
    ftp
    gd
    hash
    iconv
    json
    libxml
    mbstring
    mcrypt
    mhash
    mongo
    mysql
    mysqli
    mysqlnd
    odbc
    openssl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    phalcon
    Phar
    redis
    Reflection
    session
    SimpleXML
    SPL
    sqlite3
    standard
    tokenizer
    wddx
    xdebug
    xml
    xmlreader
    xmlwriter
    xsl
    zip
    zlib
    
    [Zend Modules]
    Xdebug
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部