Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件的唯一标识符_Php_File_Reference_Unique - Fatal编程技术网

Php 文件的唯一标识符

Php 文件的唯一标识符,php,file,reference,unique,Php,File,Reference,Unique,如果我想将数据库中的内容链接到文件,我可以使用什么来唯一引用数据库中的文件,而不是可能更改的文件或创建/修改日期名称。是否有文件独有的、不会更改且可用于在数据库中引用该文件的其他内容 我希望引用与m3u8媒体文件相对应的db内容数据,以便在播放该文件时检索并显示db内容。我希望能够修改m3u8文件名并更改其内容,因此我需要使用文件名或mtime以外的其他内容来引用该文件。我可能会投反对票,但我必须与他人分享 我通常用time()来解决这个问题,因为几乎不可能有重复的time()条目(除非奇迹般地

如果我想将数据库中的内容链接到文件,我可以使用什么来唯一引用数据库中的文件,而不是可能更改的文件或创建/修改日期名称。是否有文件独有的、不会更改且可用于在数据库中引用该文件的其他内容

我希望引用与m3u8媒体文件相对应的db内容数据,以便在播放该文件时检索并显示db内容。我希望能够修改m3u8文件名并更改其内容,因此我需要使用文件名或mtime以外的其他内容来引用该文件。

我可能会投反对票,但我必须与他人分享

我通常用
time()
来解决这个问题,因为几乎不可能有重复的
time()
条目(除非奇迹般地,两个文件处理在同一时间段发生)。 我不会就此止步,我有时会将用户名添加到字符串中,以及一些其他随机代码,这使得它几乎是重复的证明(可能性接近于零)

假设文件名为
super-awersome pdf file.pdf
。我在它前面添加了
time()
(一个字符串),然后添加了一些其他内容。该文件名本身成为一个唯一的id。此外,我还将信息存储在一个数据库表中,以给它另一个唯一的id。因此,我有两件事要处理

通过将文件名保持在60-70个字符以下,您可以通过这种方式创建一些非常独特的文件名。然后,您可以将有关它的信息添加到数据库中

Pro: 您几乎永远不会得到重复的文件名

Con:但是,这可能会创建重复的文件,因为系统将看到这两个文件具有不同的文件名

因此,没有重复的文件名,但如果用户不小心,可能会出现一些重复的文件


希望这能有所帮助。

生成一个唯一的id,或者使文件名保持不变。或者使用加密哈希(请注意,如果相同的文件上载两次,它将具有相同的哈希)。文件名-其完整路径是文件唯一标识它的属性(在文件系统中)。如果需要其他内容,则必须将该新方法与文件名相结合。如果要生成唯一的文件名,请参阅函数。感谢您的评论,您给了我一个想法,可以在文件名前面加上唯一的id,即time(),然后加上分隔符,即下划线。这样,下划线后的文件名可以更改,但标识符将保留并在数据库中引用。