我在我的php脚本中使用random.org来生成这样的随机数:
function getToken($length){
$r = explode('
',file_get_contents('http://www.random.org/integers/?num='.$length.'&min=0&max=9&col=1&base=10&format=plain'));
$string = '';
foreach ( $r as $char ) $string.=$char;
return $string;
}
但是我的大学网否认了这样的问题,所以当我使用大学wifi测试我的项目时,我不会生成随机数,这意味着麻烦。
所以,我在使用这个函数之前,如果我可以查询random.org或者不是这样的话,它需要是chect:
if( site is accessible ) return getToken();
else return false;
检查可访问性的最佳方法是什么?
我自己尝试过:
file_get_contents();
但它会发出警告,更新它失败,
dns_get_record();
但我不知道我是否可以相信,如果只检查dns名称。 请帮忙!
P.S。 ping技术可能有用......
答案 0 :(得分:1)
您可以使用file_get_contents
运行@
来阻止错误,只需在没有给出随机数的情况下返回,结果如下:
function getToken($length){
$number = @file_get_contents('http://www.random.org/integers/?num='.$length.'&min=0&max=9&col=1&base=10&format=plain');
if($number === false) return null;
$r = explode('',$number);
$string = '';
foreach ( $r as $char ) $string.=$char;
return $string;
}
话虽如此,我严重怀疑你是否真的需要使用random.org来生成随机数。 PHP自己的伪随机生成器函数包括openssl_random_pseudo_bytes
,据说生成“加密强”的伪随机数:
http://www.php.net/manual/en/function.openssl-random-pseudo-bytes.php