Intereting Posts
Установка ожидающего тона для обработки функции agi Загружать самоподписанный сертификат ssl в телеграмму Реализация поисковой системы сайта, которая ищет статические страницы Генерирование разрыва строки в FPDF Передача переменной php в модальный твитер bootstrap не работает В PHP, Как вызвать функцию в строке? Проверка подлинности пользователя PHP с использованием базы данных и IP-адреса? Как правильно установить часовой пояс mysql Переменная, содержащая путь в виде строки для многомерного массива? PHP – изменить специальные символы MS Word (^ l, ^ p, ^ s) на "," PHP simplexml xpath ищет значение в ELEMENT, содержащем текст с разделителями табуляции? Дизайн дизайна реестра … хороший или плохой? Найти все ключи массива, имеющие одинаковое значение Postgresql regexp_matches внутри представления всегда возвращает null при запросе из PHP Недопустимое смещение строки Предупреждение PHP

Как проверить путь – это файл или папка в PHP

Я использую scandir () для поиска файлов рекурсивно. Но если путь к файлу направляется в файл, а не в папку, появится предупреждение. Как я могу проверить путь, направляет ли он файл или папку?

enter code here <?php $path = "C:\\test_folder\\folder2\\folder4"; $sub_folder = scandir($path); $num = count($sub_folder); for ($i = 2; $i < $num; $i++) { ...//if $sub_folder[$i] is a file but a folder, there will be a warning. How can I check $sub_folder[$i] before use it? } ?> 

Благодаря!

Посмотрите is_dir () и is_file ()

 <?php $path = "C:\\test_folder\\folder2\\folder4"; $sub_folder = scandir($path); $num = count($sub_folder); for ($i = 2; $i < $num; $i++) { if(is_file($path.'\\'.$sub_folder[$i])){ echo 'Warning'; } } ?> 

is_dir () должен сказать вам, является ли путь каталогом или нет.

Вы также можете использовать DirectoryIterator ( класс )

 $path = 'your path'; $dir = new DirectoryIterator(realpath($path)); foreach ($dir as $fileInfo) { if($fileInfo->isFile()) { // it's a file } } 

Кроме того, вы можете проверить is_file и is_dir .

Вы можете проверить, имеет ли переменная расширение файла или нет.

Это «если» будет получать только файлы:

 if (pathinfo($file, PATHINFO_EXTENSION)) 

и это «если» будет получать только каталоги:

 if (!pathinfo($file, PATHINFO_EXTENSION))