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”)
作为检查()中的第一件事
然后您能确认路径是否正常吗?是的,它将检查应用程序/文件夹中的所有文件夹。