我正在寫一個文件哈希類,但我一開始就卡住了。is_file()和is_dir()不起作用
class fileHashing
{
private $start_path = '../../../test';
private $log_path = '../../../test/log';
private $log_file = 'fileHash.xyz';
function __construct()
{
$this->open();
}
private function open() {
$files_list = scandir($this->start_path);
print_r($files_list);
date_default_timezone_set('Europe/Rome');
foreach ($files_list as $key => $element) {
if (is_file($element)) {
echo "FILE: " . $element . PHP_EOL;
} elseif (is_dir($element)) {
echo "DIR: " . $element . PHP_EOL;
} else {
echo "NONE: " . $element . PHP_EOL;
}
}
}
}
$a = new fileHashing();
返回:
Array
(
[0] => .
[1] => ..
[2] => fileupload.php
[3] => log
[4] => test1.php
[5] => tsconfig.json
)
DIR: .
DIR: ..
FILE: fileupload.php
NONE: log
NONE: test1.php
NONE: tsconfig.json
log
是一個文件夾,它不承認它,既test1.php
和tsconfig.json
不確認文件。 我錯過了什麼scandir()
/is_file()
/is_dir()
?
也許你應該使用'$ this-> start_path。 '/'。 $ element'代表'is_dir'和'is_file' – Philipp
這些文件可能是符號鏈接嗎?試試'is_link()' – rickdenhaan
@ Philipp我知道我錯過了一些關於這些功能的東西;我想他們分析'.ext =>文件''沒有外部=>文件夾'區分的文件名,這樣文件名就足夠了。感謝Philipp,現在它可以工作。你能告訴我他們如何分析文件/目錄嗎?檢查斜槓'/'? – Brigo