在PHP中,有没有办法获取运行它的系统唯一的值?
理想情况下,我希望它是一种随机字符串,在运行的系统上保持不变,但在其他系统上有所不同。
我需要一个我不必存储在单独的文件/数据库中并且在每个脚本上都可以轻松获得的。
创建自己的随机值(例如使用 uniqid)并将其放入环境变量。对于用户,apache或nginx。或者只是在你的 php 文件中定义它。
是的
-
最终,你想要gethostname()
如果你这样做:
echo md5($_SERVER['SERVER_ADDR'].gethostname());
然后,您将拥有一个仅与该服务器有关的唯一字符串
但是,还有很多其他值将是独一无二的
尝试:
<?php
print_r($_SERVER);
?>
您应该找到几个与您正在寻找的值相似的值。
如:
[SERVER_SOFTWARE] => nginx/1.4.6
[SERVER_ADDR] => 123.456.789.909
然后,还有一些预定义的常量可以保存您想要的内容 -
<?php
print_r(get_defined_constants());
?>
其中有这样的事情:
[PHP_VERSION] => 5.5.9-1ubuntu4.5
[PHP_MAJOR_VERSION] => 5
[PHP_MINOR_VERSION] => 5
[PHP_RELEASE_VERSION] => 9
[PHP_EXTRA_VERSION] => -1ubuntu4.5
[PHP_VERSION_ID] => 50509
虽然这些值在运行相同软件堆栈的服务器上是相同的,但这些值通常不太可能完全匹配......但是,唯一 ID 的最佳选择是 IP 地址 + 主机名 -
您可以生成uniqid()
附加主机名,然后使用类似 md5
或 sha-256
的内容对其进行哈希处理