サーバーの構成に応じて、PHP を使用して CDN でホストされたスクリプトの可用性をリモートで確認する方法として、一般的に 2 つの方法に出くわしました。一つはcURL
、もう一つは ですfopen
。次のように、それぞれのケースで使用する 2 つの関数を組み合わせました。
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
}
}
...しかし、車輪を再発明するつもりはありません。これは優れた堅実な手法ですか、またはプロセスを簡素化/合理化する方法について誰かが指針を提供できますか?