PHP检查内容是否可用

时间:2013-04-26 19:47:18

标签: php http onavailable

我在我的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技术可能有用......

1 个答案:

答案 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