检查Jquery CDN协议相对url是否存在PHP

时间:2013-05-17 16:44:52

标签: php google-cdn

我试图通过PHP

查看是否存在JQuery CDN

基本上保罗爱尔兰人在这里所做的事情,而不是PHP。

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

我正在尝试跟随,但它不起作用。这可能没有http / https吗?

这基于How can I check if a URL exists via PHP?

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

1 个答案:

答案 0 :(得分: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;