2013-04-26 2 views
1

Я использую Random.org в моем PHP скрипт для генерации случайных чисел, как, что:проверка PHP, если содержимое доступно

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; 
    } 

но мой университет чистый отрицает такие запросы, так whenewer я проверить свой проект с помощью Wi-Fi университета , я не получаю случайные числа, которые будут сгенерированы, и это означает проблему.

Итак, я, прежде чем использовать эту функцию, она должна быть chect, если я могу запросить random.org или не нравится:

if(site is accessible) return getToken(); 
    else return false; 

, что было бы лучшим способом проверить accesability?

Myself я пробовал:

file_get_contents(); 

но он посылает предупреждения, whenewer это не удается,

dns_get_record(); 

, но я не знаю, если я могу верить, что, если он проверяет только имя DNS. Пожалуйста, помогите!

P.S. техника Pinging может proove ПОЛЕЗНЫЕ ...

+0

Почему вы не генерировать случайные числа в вашем сценарии сами? Я имею в виду, есть ли конкретная причина, почему вы используете 'random.org'? – jsalonen

+0

, потому что он генерирует реальные случайные числа – Benedictus

+0

, так что 'mt_rand()': http://php.net/mt_rand –

ответ

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

+0

Я попробовал open_ssl, но драматически запрещен в хосте, я использую – Benedictus

+0

Я не знал, что @ thing, thats полезный пост. Мало того, что вы решили, как решить проблему, но у меня что-то ценное. Благодаря! – Benedictus

+0

Да, и, как я уже сказал, я не могу использовать open ssl, но вместо этого собираю сгенерированные случайные записи и генерирую только уникальные комбинации чисел. – Benedictus

Смежные вопросы