我想模拟服务器端,所以:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
document.write(unescape("%3Cscript src='/Scripts/jquery-1.3.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
在php中输入:
function isurlok($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
if(!curl_errno($ch))
$info = curl_getinfo($ch);
curl_close($ch);
if (isset($info) && $info['http_code'] == 200) {
if ($info['http_code'] == 200 ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
获取资源的可用性(在本例中为文件),然后是:
if ( isurlok ("https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js") {
// remote file
print "<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>";
print "remote file";
} else {
// local file
print "<script type="text/javascript" src="jquery/1.11.3/jquery.min.js"></script>";
print "local file";
}
为什么不工作?我的意思是,脚本返回"本地文件"时,远程文件存在,我等待返回"远程文件"。如果我用:"http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js"改变谷歌的url,那么它可以正常工作。我错在哪里?在情况下,我怎么能修复脚本,因为它总是工作?非常感谢。
当您尝试从https源获取时,curl函数需要更多的参数。
function isurlok( $url ) {
/* You can download the cacert.pem from the web - search on Google */
$cacert='/path/to/cacert.pem';
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_NOBODY, true );
curl_setopt( $ch, CURLOPT_USERAGENT, 'curl-fetchurl' );
if( parse_url( $url,PHP_URL_SCHEME )=='https' ){
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 1 );
curl_setopt( $curl, CURLOPT_CAINFO, realpath( $cacert ) );
}
curl_exec( $ch );
if( !curl_errno( $ch ) ) $info = curl_getinfo( $ch );
curl_close( $ch );
if ( isset( $info ) && array_key_exists('http_code',$info)) {
return $info['http_code'] == 200 ? true : false;
}
return false;
}