我的應用程序是在IIS和物理目錄結構運行的相對路徑獲得的文件時看起來是這樣的:水珠在返回任何結果試圖從
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
,我得到這樣的輸出:
array(0){} End CheckForUsersToImport();
我試着將第二行代碼簡單地改爲$globRes = glob("*.cgi");
,但是這產生完全相同的輸出。
我發現this question但接受的答案並沒有爲我工作。
我已經試過:
$usersDir = "./import_data/users/";
$usersDir = "/import_data/users/";
$usersDir = "import_data/users/";
但所有3給我完全相同的輸出上面的代碼。
如何我可以得到目錄中的兩個級別「」之下,其功能正在執行的".cgi"
擴展名的文件?
編輯:
我更新的功能如下:
function checkUserData()
{
$usersDir = "import_data/users";
$globRes = scandir($usersDir);
}
在運行此,我得到下面的輸出:
[phpBB的調試] PHP的警告:在文件[ ROOT] /includes/myfunctions.php第5行:scandir(import_data/users,import_data/users):系統找不到指定的路徑。 (代碼:3)
[phpBB的調試] PHP警告:在文件[ROOT] /includes/myfunctions.php第5行:SCANDIR(import_data /用戶):未能打開DIR:沒有這樣的文件或目錄
[phpBB的調試] PHP的警告:在第5行文件[ROOT] /includes/myfunctions.php:SCANDIR():(錯誤2):沒有這樣的文件或目錄
爲什麼尋找scandir(import_data/users,import_data/users)
在第一個錯誤?這完全不是我通過的 - 或者至少,不是我認爲我通過的 - 到scandir()
!
檢查從'回聲GETCWD()的輸出;'來確定工作目錄已經改變。並且儘可能使用完整的路徑,如$ usersDir = __DIR__。 '/ import_data/users /';' –
看起來像你使用的是phpBB - 我從來沒有爲它開發過,但是如果它在某個時刻需要'chdir()',這樣工作目錄不是'你期望什麼。我之前曾在Drupal中處理過這個問題。不知道有關奇怪的'scandir()'錯誤。 –