Уставший AWM
С нами с 04.01.07
Сообщения: 1702
Рейтинг: 1233
|
Добавлено: 21/03/09 в 03:13 |
Нужен скриптик
Есть txt список со строками вида:
Есть папка с файлами из этого txt списка
Код: | pdfshbf.jpg
fhevssw.jpg
...........
sgvcgvcd.jpg |
Задача сравнить имена джепегов тех что в папке и тех что в txt-списке. И удалить строки из txt-списка, которые содержат имена джепегов не имеющихся в папке. Список в самой папке находится.
|
|
|
|
« ... 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
Сообщения: 1702
Рейтинг: 1233
|
Добавлено: 21/03/09 в 19:05 |
Спасибо! Сейчас попробую
|
|
|
|
Уставший AWM
С нами с 04.01.07
Сообщения: 1702
Рейтинг: 1233
|
Добавлено: 21/03/09 в 19:51 |
не вышло чет, наверное не так чего-то сделал я
|
|
|
|
« ... 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 могут быть и имена файлов, не наличествующих в директории?
|
|
|
|
Уставший AWM
С нами с 04.01.07
Сообщения: 1702
Рейтинг: 1233
|
Добавлено: 22/03/09 в 01:36 |
Corex работает
Цитата: | Или в files.txt могут быть и имена файлов, не наличествующих в директории? |
Угу, причем файлов в самой директории от 1.5к + и имена рандомные типа dvVS2JHdgbs.jpg : )))
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 23/03/09 в 23:45 |
Insider писал: |
Угу, причем файлов в самой директории от 1.5к + и имена рандомные типа dvVS2JHdgbs.jpg : ))) |
Да не, я не о том. Вопрос был - содержимое files.txt должно точно соответствовать всем jpeg'ам директория, или они могут как-то различаться? Изначально же этот список откуда-то берется?
Кстати, при таких размерах списка, да еще и частых обращениях к нему (я ж так понимаю, его потом какой скрипт с веба читает?) я бы подумал уже о том, чтобы отказаться от списка, хранящегося в файлах. Есть DBM. Есть MySQL, в конце концов, но DBM будет быстрее в этом случае. Хотя хранилища данных, медленнее текстовых файлов, уж точно нет.
|
|
|
|
Уставший AWM
С нами с 04.01.07
Сообщения: 1702
Рейтинг: 1233
|
Добавлено: 24/03/09 в 00:06 |
Все намного проще, если можно так сказать... Скриптом грабятся пиксы с fhg и создается список этим же скриптом точно соответствующий тем пиксам что сграбились в директорию; дальше пиксы кропаются мной и появляются дополнительные вариации некоторых пикс в дире, эти добавившиеся после кропа джепеги я заношу в список, но уже вручную (не придумал пока как автоматизировать это дело), отсюда и появляются в списке левые строки, я ж не скрипт ошибаюсь, строк много = ) дальше папка заливается на серв, а список скармливается ротатору. Ротатор грабит пиксы и потом в админке я уже добавляю галеры с моими тумбами в ротацию, но вся это возня с ручным добавлением в список жрет мое время
ps: стучи в аську если есть идеи по автоматизации добавления новых накропанных пикс в список. Ты же прогер вроде, обговорим тогда : )
|
|
|
|