| |
|
|
| | Необходимо найти в директории файлы, имена которых отсутствуют в текстовом файле. И в идеале потом их удалить. Приведенный ниже скрипт только ищет, сравнивает и печатает результаты. В выводимых данных явно видно совпадения, но скрипт упорно их не находит.
Не может это быть из-за того, что имена файлов в системе (используется Linux) в кодировке UTF-8, а текстовый файл в Win-1251?
Куда копать?
<?php
function scan_dir_data($dirname)
{
//Текстовый файл, разделен на строки, кодировка Win-1251
$filebase=file("../base/news/base.dat");
$countnews=count($filebase);
// Открываем текущую директорию
$dir = opendir($dirname);
// Читаем в цикле директорию
while (false !== ($file = readdir($dir)))
{
// Если файл обрабатываем его содержимое
if($file != "." && $file != ".." && $file != ".htaccess" && $file != "index.php")
{
// Обрезаем расширение
$filename = str_replace(".dat", "", $file);
//Печатаем список файлов
echo "$filename<br />\r\n";
//Читаем файл данных построчно
for ($ii=0;$ii<$countnews; $ii++)
{
// Имена файлов в переменной $Random без расширения dat
list($Date,$Random,$Author,$Authormail,$Authorid,$Name,$Msg)=explode("::",$filebase[$ii]);
//Печатаем переменную $Random
echo " - $Random";
if($filename === $Random)
{
$yesfile="yes";
}
else
{
$yesfile="no";
}
//Печатаем совпадения
echo "<br />$yesfile<br />\r\n";
}
}
}
// Закрываем директорию
closedir($dir);
}
?>
|
| |
| |
|