Мое приложение работает на IIS и физической структуры каталогов выглядит примерно так:Glob не возвращается никаких результатов при попытке получить файлы из относительного пути
C:\inetpub\wwwroot\myApplication\index.php
C:\inetpub\wwwroot\myApplication\includes\myfunctions.php
C:\inetpub\wwwroot\myApplication\includes\import_data\users\
Эта последняя папка содержит 978 .cgi файлы, которые я Я пытаюсь прочитать данные.
index.php
включает includes/myfunctions.php
и делает вызов к одному методу в нем - CheckForUsersToImport()
, который определяется следующим образом:
function CheckForUsersToImport()
{
$usersDir = "import_data/users/";
$globRes = glob($usersDir . "*.cgi");
var_dump($globRes);
echo "End CheckForUsersToImport();";
}
Когда я перейти к localhost/myApplication/index.php
в моем браузере, я получаю этот выход:
массив (0) {} End CheckForUsersToImport();
Я попытался изменить вторую строку кода просто $globRes = glob("*.cgi");
, но это дает точный результат.
Я нашел this question, но принятый ответ не сработал для меня.
Я пробовал:
$usersDir = "./import_data/users/";
$usersDir = "/import_data/users/";
$usersDir = "import_data/users/";
Но все 3 дают мне тот же результат, что и выше код.
Как я могу получить все файлы с расширением ".cgi"
в каталоге, находящемся под двумя уровнями «под» выполняемой функцией?
EDIT:
Я обновил свою функцию следующим образом:
function checkUserData()
{
$usersDir = "import_data/users";
$globRes = scandir($usersDir);
}
Когда это работает, я получаю следующий результат:
[PHPBB Debug] PHP Warning: в файле [ ROOT] /includes/myfunctions.php в строке 5: scandir (import_data/users, import_data/users): система не может найти указанный путь. (Код: 3)
[PHPBB Debug] PHP Warning: в файле [ROOT] /includes/myfunctions.php в строке 5: ScanDir (import_data/пользователей): не удалось открыть реж: Нет такого файла или каталога
[PHPBB Debug] PHP Warning: в файле [ROOT] /includes/myfunctions.php в строке 5: ScanDir(): (Errno 2): Нет такого файла или каталога
Почему ищет scandir(import_data/users,import_data/users)
в этой первой ошибке? Это совсем не то, что я прошел - или, по крайней мере, не то, что, я думаю, прошел, - до scandir()
!
Проверьте выход из 'эхо getcwd()', чтобы определить, если рабочий каталог изменился. И когда это возможно, используйте как полный путь, как вы можете, например '$ usersDir = __DIR__. '/ import_data/users /'; ' –
Похоже, вы используете phpBB - я никогда не разрабатывал для него, но не удивлюсь, если в какой-то момент он должен« chdir() », так что рабочий каталог isn ' что вы ожидаете. Раньше я занимался этим в Drupal. Однако не знаю о странной ошибке «scandir()». –