Edit report at http://bugs.php.net/bug.php?id=51369&edit=1

 ID:               51369
 Comment by:       opi88 at web dot de
 Reported by:      opi88 at web dot de
 Summary:          add getFileByInode() function
 Status:           Bogus
 Type:             Feature/Change Request
 Package:          *Directory/Filesystem functions
 Operating System: ALL
 PHP Version:      Irrelevant

 New Comment:

Well that's no good news. But what about the filesystems that support a
"getFileByInode" – can you name some? And is there any other way to
get a unique identifier of a file that doesn't change when a file is
moved, and can be resolved both ways?



In case there is not: Any "best practice" suggestion?


Previous Comments:
------------------------------------------------------------------------
[2010-03-23 19:12:49] [email protected]

The inode is handled by the filesystem and we can't rely in anyway on
it. It is only exposed as away to help debugging some issues. Many
filesystems don't offer a reliable way to locate files by their inode.

------------------------------------------------------------------------
[2010-03-23 18:52:20] opi88 at web dot de

Description:
------------
Imagine a CMS (or similar system) that links a picture to a text. When
the picture is moved to a different location, the system cannot find and
include the picture anymore.



There are two options for solving this issue:

(1) Update each database entry containing the picture path. Depending on
where, how and how many times the picture is included, this can be very
tedious.

(2) Provided there is a database (table) containing all files linked to
and their paths, you have to update this db / table with the new picture
path.



But why use an extra database (table) in (2) when there already is a
database for files: The filesystem!? And both methods require you to
execute the update manually.



With PHP, you can get a file's Inode, but you can't get a file (path) by
providing an Inode. If you could, you'll might just link an Inode in
your database instead of a path and you'll always have the correct
picture path.



Thus, I request a getFileByInode() function, or extend the fileinode()
function to be able to return a path on integer input.

Test script:
---------------
<?php

$inode = fileinode('/path/to/file.ext');

$path  = fileinode((int) $inode); // returns '/path/to/file.ext'

?>



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51369&edit=1

Reply via email to