Php 如何将阵列中的密钥与服务器上的文件进行比较?
我有两个关于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 如何检查数组中定义的每个文件是否
$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函数,因为您可能无权在服务器上执行它们。