【发布时间】:2012-12-12 03:35:38
【问题描述】:
根据服务器配置,我通常会使用两种方法来使用 PHP 远程检查 CDN 托管脚本的可用性。一个是cURL,另一个是fopen。我结合了我在各自情况下使用的两个函数,如下所示:
function use_cdn(){
$url = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'; // the URL to check against
$ret = false;
if(function_exists('curl_init')) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
$result = curl_exec($curl);
if (($result !== false) && (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200)) $ret = true;
curl_close($curl);
}
else {
$ret = @fopen($url,'r');
}
if($ret) {
wp_deregister_script('jquery'); // deregisters the default WordPress jQuery
wp_register_script('jquery', $url); // register the external file
wp_enqueue_script('jquery'); // enqueue the external file
}
else {
wp_enqueue_script('jquery'); // enqueue the local file
}
}
...但我不想重新发明轮子。这是一种好的、可靠的技术,还是任何人都可以提供有关如何简化/简化流程的指示?
【问题讨论】:
-
如果谷歌 CDN 宕机了,我会非常担心世界末日。 O.o
-
@cryptic 我知道,但 Google 不必关闭它的 CDN 以使其在某些地区/某些网络/等不可用。
-
那么请看我的简化方法。
标签: php wordpress curl fopen cdn