Php 文件扫描功能不可用

Php 文件扫描功能不可用,php,file-io,Php,File Io,我一直在做一个功能,扫描目录中的文件,并扫描扫描目录中某个文件夹中的特定文件。简单地说, 扫描的控制器->扫描控制器中特定文件的文件夹 这是我一直在使用的代码 function __construct(){ $name = array_diff(scandir($_SERVER['CONTEXT_DOCUMENT_ROOT']."/apps/"), array('..', '.')); foreach($name as $key) { $this->installed = arra

我一直在做一个功能,扫描目录中的文件,并扫描扫描目录中某个文件夹中的特定文件。简单地说,

扫描的控制器->扫描控制器中特定文件的文件夹

这是我一直在使用的代码

function __construct(){
$name = array_diff(scandir($_SERVER['CONTEXT_DOCUMENT_ROOT']."/apps/"), array('..', '.'));
foreach($name as $key)
{
    $this->installed = array($key);
    while($this->check($key)){}
}
}

function check($name){
if(file_exists($_SERVER['CONTEXT_DOCUMENT_ROOT']."/apps/".$name."/index.php"))
{
    echo "YES";
}
else
{
    echo "NO";
}
}

但即使文件已经在文件夹中,输出也会返回“否”。是否有解决方案?

请再次检查以下几点,然后继续

  • 请检查文件路径
  • 您的文件夹和文件必须具有读取权限
  • 对于指向不存在文件的符号链接,file_exists($filename)函数将返回FALSE
  • $name变量返回您在文件中使用的数组。\u exists($filename)
  • 我对代码做了一些修改,并在这里检查了它的工作情况

    $name = array_diff(scandir($_SERVER['CONTEXT_DOCUMENT_ROOT']."/apps/"), array('..', '.'));
    foreach($name as $key) {
    $this->installed = array($key);
    while($this->check($key)){}
                  if(file_exists($_SERVER['CONTEXT_DOCUMENT_ROOT']."/apps/".$key."/index.php")){
        echo "YES";
    }else{
        echo "NO";
    }
    }
    

echo$\u SERVER['CONTEXT\u DOCUMENT\u ROOT'].“/apps/”$name./index.php”
要确保在正确的文件夹中查找正确的文件,array\u diff将返回一个数组。在您的例子中,$name=array_diff(scandir($_SERVER['CONTEXT_DOCUMENT_ROOT'].“/apps/”),array(“…”,”)$name变量现在有一个数组。在这一行中,如果(file_存在($_SERVER['CONTEXT_DOCUMENT_ROOT'].“/apps/”$name./index.php)),您使用的是与字符串连接的同一变量。我正在正确的文件夹中查找正确的文件。。。每个文件夹都有一个index.php,但它仍然没有输出YES,我已经使用foreach函数将数组更改为字符串……您在字符串中使用
$name
,但是
$name
来自
数组,它返回一个数组,而不是字符串。它可能试图找到
CONTEXT\u DOCUMENT\u ROOT/apps/Array/index.php
,因为
(string)Array()
Array
@HaikalIzzuddin,如果你把
var\u dump($\u SERVER['CONTEXT\u DOCUMENT\u ROOT'])“/apps/”$name./index.php”)
作为
检查()中的第一件事
然后您能确认路径是否正常吗?是的,它将检查应用程序/文件夹中的所有文件夹。