2013-05-17 57 views
0

我想看看是否JQuery的CDN存在與否通過PHP檢查Jquery的CDN協議相對URL存在PHP

基本上就是保羅愛爾蘭確實在這裏,但用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

嗨檢查這個解決方案你是支票頭沒有你需要添加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;