Как получить список всех потерянных файлов изображений?

Я хотел бы создать список изображений, которые больше не используются в любом элементе контента, чтобы их можно было очистить с диска. Каков наилучший способ создания такого списка?

8 голосов | спросил miroxlav 5 Mayam14 2014, 03:42:23

4 ответа


5

Я не уверен, что есть лучший способ, как это сделать. Единственный способ, о котором я могу думать, требует немного усилий. То есть, создавая список всех изображений в таблице содержимого в базе данных (и, возможно, в модулях, меню, баннерах и т. Д.) В любом месте, где ссылки ссылаются, что много), сравните этот список со всеми изображениями в файловой системе, а затем сравнить между каждым списком и удалить изображения, которые не используются.

Итак, это будет выглядеть так:

1) Получите список всех изображений в таблице базы данных com_content. Дамп всех строк, регулярное выражение для <img src="images/stories/an-image.jpg" />. Другой способ - использовать метод str_tags () php и разрешить только тег. Я нахожу это проще, чем писать регулярное выражение. В основном запустить php-скрипт для создания этого списка для вас в виде текстового документа или csv.

2) Получите список всех изображений на сайте. Вы можете использовать grep из командной строки, чтобы сделать это, я верю. Возможно, вы могли бы сделать это с помощью какого-то рекурсивного метода файловой системы php.

3) зайдите в таблицу и выполните какое-то сравнение с каждым столбцом, чтобы увидеть, используется ли изображение, составляя список неиспользуемых изображений в третьем столбце.

-

Лично, если у вас нет дерьма изображений, я не уверен, что это стоит усилий. Но вам придется определить, что в ожидании вашего варианта использования. Также может быть гораздо более простое решение, которое кто-то еще должен будет предложить!

ответил Chad Windnagle 5 Mayam14 2014, 04:04:44
3

Я не знаю о существующем расширении, которое бы это сделало. Лучше всего написать скрипт, который проверяет каждое изображение на таблицы в базе данных, где содержимое может быть сохранено, чтобы узнать, используются ли они.

ответил Michael 5 Mayam14 2014, 04:06:04
3

Если у вас есть журналы доступа, вы можете вытащить все запрошенные файлы изображений за последние X месяцев (вам нужно будет играть со всеми этими данными). Таким образом, они, вероятно, используются на вашем фактическом сайте (но не на 100%). В зависимости от вашего контента и структуры сайта, и если ваш сайт не очень большой (например, 1 миллион статей), очень вероятно, что остальные, вероятно, не используются (опять же не 100%).

Я считаю это решение простым. Резервное копирование изображений перед удалением. Вы можете отслеживать позже 404 ошибки, пытаясь открыть определенные файлы, и вы можете решить их восстановить.

Это грязное решение, но на самом деле нет простого способа. Лучшим вариантом было бы следовать совету Чада и писать собственный парсер.

ответил Ivo 14 Mayam14 2014, 02:33:38
0

Пока вопрос не задавался, по состоянию на август 2018 года по крайней мере несколько расширений, которые, по-видимому, могут найти и удалить потерянные изображения:

VX orphanImages (платное расширение)

"Плагин VX orphanImages сканирует вашу папку изображений Joomla! для поиска элементов, которые не используются в каком-либо контенте на сайте. Он использует основной компонент Media для маркировки потерянных изображений в списке, поэтому вы можете решить, следует ли хранить или удалите их. "

ImageManager (бесплатные /платные версии)

«ImageManager для Joomla! позволяет перемещать и переименовывать изображения, не теряя ссылку на изображение в статьях и пользовательских модулях HTML. Просто перетащите и снимите изображения, чтобы реструктурировать и очистить свой веб-сайт, а также перечислить все неиспользованные изображения и удалить их. "

ответил Neil Robertson 5 PM00000040000001531 2018, 16:17:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132