我有两个关于PHP文件的问题,如下所示:
$test = array('test1.txt' => '<random>',
'test2.txt' => '<random>',
'test3.txt' => '<random>',
'test4.txt' => '<random>',
'test5.txt' => '<random>');
我的服务器上也有这样的文件:
/home/test1.txt
/home/test2.txt
/home/test3.txt
/home/test4.txt
/home/test5.txt
我如何通过检查数组中定义的每个文件是否也存在于/ home /文件夹中并且/ home /中的所有文件都在数组中定义?
Q2)有没有办法自动获取/home/*.txt中的文件名并自动将它们插入一个空数组中,如:
$test = array('' => '<random>',
'' => '<random>',
'' => '<random>',
'' => '<random>',
'' => '<random>');
谢谢!
答案 0 :(得分:1)
Q1)您可以从具有file_exists功能的路径数组中检查服务器上是否有文件。
foreach ($test as $str_filename=> $random) {
if (file_exists('/home/' . $str_filename) === false) {
echo 'A file is missing on server';
}
}
你可以像这样使用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函数获取它。
$test = [];
foreach (glob('/home/*.txt') as $str_filename) {
$test[$str_filename] = file_get_contents('/home/' . $str_filename);
}
答案 1 :(得分:0)
试试这个:
foreach ($test as $fileName => $value) {
if(file_exists("/home/{$fileName}")) {
//exists
} else {
//Does not exist.
}
}