Как проверить, какие заголовки / файлы отсутствуют и почему?

#php #mysql

#php #mysql

Вопрос:

 select count(*) id from arts where what = 'file';
  

Результат — 1713

 select title, count(*) c from arts group by title having c > 1;
  

результат — zero — таким образом, дубликатов нет

 $st = $db->query("select id, title, content from arts where what = 'file' order by title asc");
$st->execute();
$err = '';
while($row = $st->fetch()){
    $path = '../temp/' . $row['title'];
    $file = fopen($path . '.html', "w") or die("Unable to open file!");
    if(!$file){
        $err .= $row['title'] . ', ';
    } 
    fwrite($file, $row['content']);
    fclose($file);
}

echo $err;
  

ничего не повторяется, нет никаких ошибок или предупреждений, и 1711 файлы создаются.

Итак, отсутствуют два файла.

Я проверил заголовки — нет двойных пробелов, начальных и конечных пробелов, заголовки только буквенно-цифровые…

Как проверить, какие заголовки / файлы отсутствуют и почему?

Комментарии:

1. Я полагаю, вы используете mysqli ? Затем вы можете использовать $st->num_rows , чтобы получить количество возвращаемых строк.

2. Возможно, вы столкнулись с проблемой максимальной длины имени файла, и у вас есть 2 заголовка, которые по этой длине одинаковы?

3. в Linux имена файлов чувствительны к регистру, но в Windows это не так. Вы используете Windows?

4. если вы используете «x» вместо «w» в качестве аргумента для fopen, произойдет сбой, если файл уже существует