Php 如何将阵列中的密钥与服务器上的文件进行比较?

Php 如何将阵列中的密钥与服务器上的文件进行比较?,php,arrays,file,multidimensional-array,automation,Php,Arrays,File,Multidimensional Array,Automation,我有两个关于PHP文件的问题,其数组如下: $test=array('test1.txt'=>'', 'test2.txt'=>'', 'test3.txt'=>'', 'test4.txt'=>'', 'test5.txt'=>'' 我的服务器上也有这样的文件: /home/test1.txt /home/test2.txt /home/test3.txt /home/test4.txt /home/test5.txt 如何检查数组中定义的每个文件是否

我有两个关于PHP文件的问题,其数组如下:

$test=array('test1.txt'=>'',
'test2.txt'=>'',
'test3.txt'=>'',
'test4.txt'=>'',
'test5.txt'=>''

我的服务器上也有这样的文件:

    /home/test1.txt
    /home/test2.txt
    /home/test3.txt
    /home/test4.txt
    /home/test5.txt
如何检查数组中定义的每个文件是否也存在于/home/文件夹中,以及/home/中的所有文件是否在数组中定义

问题2)是否有办法自动获取/home/*.txt中的文件名,并将其自动插入空数组,如:

    $test = array('' => '<random>',
                   '' => '<random>',
                   '' => '<random>',
                   '' => '<random>',
                   '' => '<random>');
$test=array(“”=>“”,
'' => '',
'' => '',
'' => '',
'' => '');
谢谢大家!

试试这个:

foreach ($test as $fileName => $value) {
    if(file_exists("/home/{$fileName}")) {
        //exists
    } else {
        //Does not exist.
    }
}
Q1)您可以使用file_exists函数从路径数组检查服务器上是否有文件

foreach ($test as $str_filename=> $random) {
    if (file_exists('/home/' . $str_filename) === false) {
        echo 'A file is missing on server';
    }
}
$test = [];
foreach (glob('/home/*.txt') as $str_filename) {
    $test[$str_filename] = file_get_contents('/home/' . $str_filename);
}
您可以像这样使用glob函数获取.txt文件

foreach (glob('/home/*') as $str_filename) {
    if (array_key_exists($str_filename, $test) === false) {
        echo 'A file is missing on array';
    }
}
Q2)如果random是文件中的内容,您可以使用file_get_contents功能获取它

foreach ($test as $str_filename=> $random) {
    if (file_exists('/home/' . $str_filename) === false) {
        echo 'A file is missing on server';
    }
}
$test = [];
foreach (glob('/home/*.txt') as $str_filename) {
    $test[$str_filename] = file_get_contents('/home/' . $str_filename);
}

谢谢你的回复。Q1)文件本身是一个脚本,如何在不将其添加到脚本的情况下将其作为单独的php文件运行(即,这样我就可以在搜索中定义scriptname数组_key_exists)。与Q2相同,但不是来自文件的内容,只是我将手动添加的随机输入。如果运行它,您的意思是包含此文件,以便使用您必须使用的函数或PHP类,或根据需要使用的函数。如果需要从服务器外壳执行它,则必须使用函数或函数。请小心使用exec和shell_exec函数,因为您可能无权在服务器上执行它们。