0
以下代码不会在Windows上的WAMP中生成输出。不生成WAMP散列
在MAMP上正常工作。
猜测这是一个缺失的模块或东西。
$reportHash = str_replace(
array('+','/','='),
array('-','_',''),
base64_encode(file_get_contents('/dev/urandom', null, null, -1, 16)));
击败我吧!这是一个与mt_rand()相关的SO问题:http://stackoverflow.com/questions/9446892/php-using-mcrypt-create-iv – 2012-04-23 17:04:11
即使在WAMP中? – David 2012-04-23 17:04:28
@David,WAMP是一个软件集合,可以很容易地在Windows上运行PHP,Apache和MySQL。它们将在Windows上运行,而不是在UNIX上运行。 '/ dev/urandom'是一个存在于UNIX文件系统上的文件(['file_get_contents()'](http://php.net/file_get_contents)实际上打开了文件并从中读取文件),但是Windows上没有这样的文件,所以读取会失败。使用该文件将限制代码到UNIX系统(例如Linux和Mac OS X)的可移植性。 – rid 2012-04-23 17:05:53