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

PHP - How to check no extension downloadable URL

        $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;
        }

这工作正常 - 它 returns true(这意味着 link 是可下载的)。

但是当 url 没有扩展名时

$url=https://drive.google.com/open?id=0B5a6JxhqgyoIdGFVeXFKSGZsd0E

它不起作用。 它总是 returns false (这意味着 link 不可下载)。

curl 的证书可能已过期。它不起作用,因为第二个 link 是 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/

你在做一些奇怪的假设:

This works fine - it returns true (that means the link is downloadable).

It always returns false (that means the link is not downloadable).

作为docs explain the return value of curl_exec() is false on failure (any kind of failure) and you have curl_error()找出问题所在。不用猜!