我遇到了一個問題,我想讓輸出告訴我哪些文件具有相同的inode,例如「filename1和filename2是相同的」。這將是如果兩個inode是相同的,但我不知道如何應用這個。我目前正在嘗試創建一個數組,其中的鍵是文件的名稱,值是inode,但它不工作(var_dump只是給了我一個空的數組)。比較值和檢查重複項
如果我以某種方式讓數組工作,那麼我猜我需要通過它以某種方式遞增並檢查兩個值是否相同然後打印它們的鍵。
global $hardlink;
$hardlink = [];
foreach (glob("*") as $filename) {
file_info($filename);
print_file_info();
}
var_dump($hardlink);
exit(0);
function file_info($name) {
global $info;
$info[0] = $name; // the file name
$info[1] = filesize($name); // file size
$info[2] = filetype($name); // file type
$cwd = getcwd();
$path = "$cwd/$name";
if(is_link($path)) {
$link = readlink($path);
$info[3] = "-> $link";
} else {
$info[3] = "No link";
}
$lstat = lstat($path);
$info[4] = $lstat[1];
$hardlink[$info[0]] = $info[4];
}
工作,非常感謝。如果可能的話,你能建議我如何檢查兩個文件inode,並將這些鍵打印出相同的值嗎?像array_intersect?因此,我可以輸出「這些文件具有相同的inode:filename1,filename2」 – Xylus
@Xylus,這超出了問題的範圍,如果無法弄清楚,請打開一個新問題。 PHP手冊有很多例子,但我希望你能閱讀並理解我的答案。如果你想編寫好的代碼,你將完全避免使用全局變量。 – Devon
@Devon再次感謝。我會查看PHP手冊並嘗試自己找出問題所在。 – Xylus