在我的程序中,我需要一种方法来创建唯一标识符(如哈希)。重要的是ID不是随机的,而是在调用相同的函数或方法之间相同。因此,如果某些文件中的某些行生成了标识符xyz
,那么总是应该在这个地方生成相同的标识符。
我可以使用代码这样的指令:
$id = sha1(__FILE__ . __ LINE__);
但这还不够舒服。我更喜欢在C / C ++中使用一些函数或宏(我知道PHP没有宏),如下所示:
$id = generate_id();
generate_id
可以如下实现。它工作正常,但我不相信在生产代码中使用函数debug_backtrace
。也许有更好的解决方案?
function generate_id()
{
$backtrace = debug_backtrace();
return sha1($backtrace[0]['file'] . $backtrace[0]['line']);
}
答案 0 :(得分:0)
如果您的目的是根据文件获得可重复的哈希值,那么PHP使用md5_file()方法可以满足您的需求。
$file = 'myfile.txt';
echo 'MD5 file hash of ' . $file . ': ' . md5_file($file);
只要文件内容没有改变,每次生成MD5哈希都是相同的。