0

我正在尝试通过 PHP 查看 JQuery CDN 是否存在

本质上是 Paul Irish 在这里所做的,但使用的是 PHP。

http://paulirish.com/2010/the-protocol-relative-url/

我正在尝试关注,但它不起作用。如果没有 http/https,这可能吗?

这是基于如何通过 PHP 检查 URL 是否存在?

    $jquery_cur = '1.9.1'; // JQuery Version
    $jquery_cdn = '//code.jquery.com/jquery-'.$jquery_cur.'.min.js';
    $jquery_local = '/assets/js/libs/jquery-'.$jquery_cur.'.min.js';

    $jquery_ver = $jquery_cdn;  //Load the Jquery CDN version by default

    $cdn_headers = @get_headers($jquery_ver);
    if(strpos($cdn_headers[0], '404 Not Found')) {
        $jquery_ver = $jquery_cdn;
    }
    else {
        $jquery_ver = $jquery_local;
    }
4

1 回答 1

1

嗨,检查这个解决方案,您检查的是没有任何协议的标头,您需要添加 http 或 https 来检查文件。在有或没有互联网连接的情况下对其进行测试。

$jquery_cur = '1.9.1'; // JQuery Version
        $jquery_cdn = '//code.jquery.com/jquery-'.$jquery_cur.'.min.js';
        $jquery_local = '/assets/js/libs/jquery-'.$jquery_cur.'.min.js';

        $jquery_ver = $jquery_cdn;  //Load the Jquery CDN version by default

        $jquery_url = ( $_SERVER['SERVER_PORT'] == 443 ? "https:" : "http:").$jquery_cdn;

        $test_url = @fopen($jquery_url,'r');

        if($test_url === False) {
        $jquery_ver = $jquery_local;
        }

        echo $jquery_ver;

使用 get_header

$headers = @implode('', @get_headers($jquery_url));
$test_url = (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers);

if($test_url === False) {
     $jquery_ver = $jquery_local;
 }

echo $jquery_ver;
于 2013-07-31T10:17:51.080 回答