Example #1
0
 /**
  * @param int $length
  * @return string|null
  */
 public static function dev($length)
 {
     if (!is_readable('/dev/urandom')) {
         return null;
     }
     $fp = fopen('/dev/urandom', 'r');
     $left = $length;
     $result = [];
     do {
         $buffer = fread($fp, $left);
         $lBuffer = Binary::getLength($buffer);
         if ($lBuffer === 0) {
             fclose($fp);
             return null;
         }
         $result[] = $buffer;
         $left -= $lBuffer;
     } while ($left > 0);
     fclose($fp);
     return implode('', $result);
 }