Реклама на сайте Advertise with us

Сравнить имена файлов в папке с именами в txt

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Уставший AWM

С нами с 04.01.07
Сообщения: 1699
Рейтинг: 1232

Ссылка на сообщениеДобавлено: 21/03/09 в 03:13       Ответить с цитатойцитата 

Нужен скриптик
Есть txt список со строками вида:
Код:
http://domen.com/dir/;pdfshbf.jpg
http://domen.com/dir/;fhevssw.jpg
.................................
http://domen.com/dir/;sgvcgvcd.jpg


Есть папка с файлами из этого txt списка
Код:
pdfshbf.jpg
fhevssw.jpg
...........
sgvcgvcd.jpg

Задача сравнить имена джепегов тех что в папке и тех что в txt-списке. И удалить строки из txt-списка, которые содержат имена джепегов не имеющихся в папке. Список в самой папке находится.

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 21/03/09 в 06:50       Ответить с цитатойцитата 

Код:
<?php

$data_file = "file.txt"; // файл со списоком
$lines = file($data_file);
$all_images = glob("*.jpg");
foreach($lines as $line)
{
   list($url, $file) = explode(";". $line);
   if(in_array($file, $all_images)) @$result .= "$url;$file\n";
}
file_put_contents($data_file, $result);

?>

Power of the lime madness...

6
 

Уставший AWM

С нами с 04.01.07
Сообщения: 1699
Рейтинг: 1232

Ссылка на сообщениеДобавлено: 21/03/09 в 19:05       Ответить с цитатойцитата 

Спасибо! Сейчас попробую

0
 

Уставший AWM

С нами с 04.01.07
Сообщения: 1699
Рейтинг: 1232

Ссылка на сообщениеДобавлено: 21/03/09 в 19:51       Ответить с цитатойцитата 

не вышло чет, наверное не так чего-то сделал я

0
 

« ... full on ... »

С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686

Ссылка на сообщениеДобавлено: 21/03/09 в 22:24       Ответить с цитатойцитата 

Insider
Вай, пардон, второпях набросал и опечатка вкралась, вот рабочий вариант:

Код:
<?php

$data_file = "file.txt";  // файл со списком
$lines = file($data_file);
$all_images = glob("*.jpg");
foreach($lines as $line)
{
   list($url, $file) = explode(";", trim($line));
   if(in_array($file, $all_images)) @$result .= "$url;$file\n";
}
file_put_contents($data_file, $result);

?>


P.S. Нужен php5 для использования file_put_contents. Если не сработает - напиши какую ошибку выдаёт.

Power of the lime madness...

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 21/03/09 в 23:18       Ответить с цитатойцитата 

А зачем сравнивать? Легче и по ресурсам проще просто перегенерить. Типа

Код:
ls *.jpg > files.txt


прямо в шелле. Или в files.txt могут быть и имена файлов, не наличествующих в директории?

6
 

Уставший AWM

С нами с 04.01.07
Сообщения: 1699
Рейтинг: 1232

Ссылка на сообщениеДобавлено: 22/03/09 в 01:36       Ответить с цитатойцитата 

Corex работает smail04.gif smail54.gif

Цитата:
Или в files.txt могут быть и имена файлов, не наличествующих в директории?

Угу, причем файлов в самой директории от 1.5к + и имена рандомные типа dvVS2JHdgbs.jpg : )))

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 23/03/09 в 23:45       Ответить с цитатойцитата 

Insider писал:

Угу, причем файлов в самой директории от 1.5к + и имена рандомные типа dvVS2JHdgbs.jpg : )))


Да не, я не о том. Вопрос был - содержимое files.txt должно точно соответствовать всем jpeg'ам директория, или они могут как-то различаться? Изначально же этот список откуда-то берется?

Кстати, при таких размерах списка, да еще и частых обращениях к нему (я ж так понимаю, его потом какой скрипт с веба читает?) я бы подумал уже о том, чтобы отказаться от списка, хранящегося в файлах. Есть DBM. Есть MySQL, в конце концов, но DBM будет быстрее в этом случае. Хотя хранилища данных, медленнее текстовых файлов, уж точно нет.

6
 

Уставший AWM

С нами с 04.01.07
Сообщения: 1699
Рейтинг: 1232

Ссылка на сообщениеДобавлено: 24/03/09 в 00:06       Ответить с цитатойцитата 

Все намного проще, если можно так сказать... Скриптом грабятся пиксы с fhg и создается список этим же скриптом точно соответствующий тем пиксам что сграбились в директорию; дальше пиксы кропаются мной и появляются дополнительные вариации некоторых пикс в дире, эти добавившиеся после кропа джепеги я заношу в список, но уже вручную (не придумал пока как автоматизировать это дело), отсюда и появляются в списке левые строки, я ж не скрипт ошибаюсь, строк много = ) дальше папка заливается на серв, а список скармливается ротатору. Ротатор грабит пиксы и потом в админке я уже добавляю галеры с моими тумбами в ротацию, но вся это возня с ручным добавлением в список жрет мое время icon_sad.gif
ps: стучи в аську если есть идеи по автоматизации добавления новых накропанных пикс в список. Ты же прогер вроде, обговорим тогда : )

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »