Найти имена файлов из папки в базе данных MySQL, используя PHP - PullRequest
0 голосов
/ 25 сентября 2019

Я использую PHP для извлечения имен файлов в папке: while (false! == ($ entry = readdir ($ handle)))

Для каждой записи $ я хочу отметитьБаза данных MySQL, если есть запись с этой записью $.

Она работает для обычных строк без специальных символов, но не работает с файлами, такими как: AdigûzelElbinur21.03.2001.jpg, TruöngNgoc Mai13.09.2009.jpg,...

Моя база данных MySQL, таблицы и поля используют utf8_general_ci.Я ищу в представлении, которое создает объединение двух таблиц (все utf8_general_ci).

Насколько я вижу, имена файлов со специальными символами находятся в кодировке UTF-8, как и мой файл PHP.

Этот скрипт выполняется на сервере Centos 7 с версией PHP 7.3.9.

Я пытался определить, является ли строка UTF8 или нет, и конвертировать, но это не работает.

Этоработает для обычных имен файлов:

while (false !== ($entry = readdir($handle))) {
  if($entry !=='.' && $entry !=='..' && $entry !== '__MACOSX'){
    echo "<div class=\"bold\">$entry</div>";
    $sqlentry = mysqli_real_escape_string($link, $entry);
    $query = "select pointer from vwLeerlingenFotosNaarSmartschool where zoekstring  = '$sqlentry'";
  }

}

Я также пытался загрузить данные из представления vwLeerlingenFotosNaarSmartschool в массив

$query  = "select distinct pointer from vwLeerlingenFotosNaarSmartschool";
                                        $result = mysqli_query($link, $query);

                                        $arr_pointer = array();
                                        while($row = mysqli_fetch_assoc($result)){
    $pointer = $row['pointer'];
    $arr_pointer[$pointer] = $row['zoekstring'];
                                        }

При поиске в $ arr_pointer с использованием

var_dump(in_array($entry, $arr_pointer));

Он также не может найти строку.

Как я могу убедиться, что имена файлов указаны в правильной кодировке, которую я могу найти в базе данных (или в массиве).

...