PHP - 如何检查无可扩展的可下载URL

时间:2016-12-12 14:17:46

标签: php web php-curl

        $url=download.piriform.com/ccsetup524.exe

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        // don't download content
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        curl_setopt($ch, CURLOPT_FAILONERROR, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        if(curl_exec($ch) !== FALSE)
        {
            return true;
        }
        else
        {
            return false;
        }

这很好用 - 它返回 true (这意味着链接可以下载)。

但是当网址没有像

那样的扩展名时
$url=https://drive.google.com/open?id=0B5a6JxhqgyoIdGFVeXFKSGZsd0E

它不起作用。 它总是返回 false (这意味着链接不可下载)。

2 个答案:

答案 0 :(得分:0)

curl的证书可能已过期。它不起作用,因为第二个链接是https。要快速修复,请添加:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

要获得正确的修复,您需要下载最新的证书包并设置您的php配置以使用它。这是一个关于它的教程:

https://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/

答案 1 :(得分:0)

你做了一些奇怪的假设:

  

这很好 - 它返回true(表示链接可以下载)。

     

它总是返回false(表示链接不可下载)。

正如docs解释curl_exec()在失败时的false的返回值(任何类型的失败),并且您curl_error()找出错误。不需要猜测!