У меня есть список элементов, взятых из файла на моем сервере.
Я скрываю определенные имена файлов, как вы можете видеть в моем коде, но переменная, которую я использую "$ filelist", скрывает только последнее значение в массиве, а не все значения.
Как вы можете видеть на изображении ниже, A15 и A17 должны быть скрыты, но только A17.
Как я могу использовать $ filelist, чтобы скрыть все значения в нем, а не только последнее?
while ($row = mysql_fetch_assoc($result)) {
$filelist = $row["file"];
echo "<input type=\"checkbox\" value=\"$filelist\" name=\"files[]\" checked=\"checked\"/> $filelist<br />";
}
echo "<br>";
$dirname = "/var/www/vhosts/hub.gkrmaintenance.co.uk/public_html/forms/templates";
$forms = scandir($dirname);
sort($forms);
foreach ($forms as $file) {
if(($file != ".") and
($file != "..") and
($file != "index.php") and
($file != "Site Induction Sheet.docx") and
($file != "Method Statement Complete.docx") and
($file != "Construction Phase Plan Complete.docx") and
($file != "Method Statement.docx") and
($file != "Construction Phase Plan.docx") and
($file != $filelist))
{
echo "<input type=\"checkbox\" value=\"$file\" name=\"files[]\" /> $file<br />";
}
}
2 ответа
Добавьте имя файла, который вы хотите скрыть, в массив $filelist
, а затем проверьте, находится ли $file
в этом массиве, используя in_array
$filelist = [];
while ($row = mysql_fetch_assoc($result)) {
$filelist[] = $file = $row["file"];
echo "<input type=\"checkbox\" value=\"$file\" name=\"files[]\" checked=\"checked\"/> $file<br />";
}
$filelist[] = ".";
$filelist[] = "..";
$filelist[] = "index.php";
$filelist[] = "Site Induction Sheet.docx";
$filelist[] = "Method Statement Complete.docx";
$filelist[] = "Construction Phase Plan Complete.docx";
$filelist[] = "Method Statement.docx";
$filelist[] = "Construction Phase Plan.docx";
echo "<br>";
$dirname = "/var/www/vhosts/hub.gkrmaintenance.co.uk/public_html/forms/templates";
$forms = scandir($dirname);
sort($forms);
foreach ($forms as $file) {
if (!in_array($file, $filelist)) {
echo "<input type=\"checkbox\" value=\"$file\" name=\"files[]\" /> $file<br />";
}
}
Ваш $filelist
не является списком, это просто последний элемент списка. Вы можете использовать способ in_array()
из другого ответа или способ ! isset()
здесь:
$file_seen = array();
while ($row = mysql_fetch_assoc($result)) {
$file = $row["file"];
echo "<input type=\"checkbox\" value=\"$file\" name=\"files[]\" checked=\"checked\"/> $file<br />";
$file_seen[ $file ] = true;
}
…
foreach ($forms as $file) {
if( … and
( ! isset( $file_seen[ $file ])
){
echo "<input type=\"checkbox\" value=\"$file\" name=\"files[]\" /> $file<br />";
}
}
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.