Я хотел бы создать список изображений, которые больше не используются ни в одном элементе контента, чтобы их можно было удалить с диска. Каков наилучший метод для создания такого списка?
источник
Я хотел бы создать список изображений, которые больше не используются ни в одном элементе контента, чтобы их можно было удалить с диска. Каков наилучший метод для создания такого списка?
Я не уверен, что есть лучший метод, как это сделать. Единственный способ, которым я могу придумать, требует немного усилий. То есть, генерируя список всех изображений в таблице содержимого в базе данных (и, возможно, в модулях, меню, баннерах и т. Д. В любом месте, где есть ссылки на изображения, что очень много), сравните этот список со всеми изображениями. в файловой системе, а затем сравнить между каждым списком и удалить изображения, которые не используются.
Так это будет выглядеть так:
1) Получить список всех изображений в таблице базы данных com_content. Дамп всех строк, регулярное выражение для <img src="images/stories/an-image.jpg" />
. Другой способ - использовать метод strip_tags () в php и разрешить только тег. Я считаю это проще, чем писать регулярные выражения в целом. По сути, запустите скрипт php, чтобы создать этот список для вас как текстовый документ или csv.
2) Получить список всех изображений на сайте. Я мог бы использовать grep из командной строки, чтобы сделать это. Возможно, вы могли бы сделать это с помощью некоторого рекурсивного метода файловой системы php.
3) получить оба в электронную таблицу и провести какое-то сравнение с каждым столбцом, чтобы увидеть, используется ли изображение, составив список неиспользуемых изображений в третьем столбце.
-
Лично, если у вас нет дерьма тонны изображений, я не уверен, что это стоит усилий. Но вам придется определить это в ожидании вашего варианта использования. Также может быть гораздо более простое решение, которое кто-то должен будет предложить!
Я не знаю о существующем расширении, которое сделало бы это. Лучше всего было бы написать скрипт, который сравнивает каждое изображение с таблицами в базе данных, где контент может храниться, чтобы увидеть, используются ли они.
Если у вас есть журналы доступа, возможно, вы сможете извлечь все запрошенные файлы изображений за последние X месяцев (вам нужно будет поиграть со всеми этими данными). Так что они очень вероятно используются на вашем реальном сайте (но не на 100%). В зависимости от вашего контента и структуры сайта, и если ваш сайт не очень большой (то есть 1 миллион статей), вполне вероятно, что остальные, вероятно, не используются (опять же, не 100%).
Я считаю это решение простым. Сделайте резервную копию изображений до удаления. Позже вы можете отслеживать ошибки 404, пытаясь открыть определенные файлы, и вы можете решить восстановить их.
Это грязное решение, но в действительности нет простого пути. Лучшим вариантом будет последовать совету Чада и написать свой собственный парсер.
Несмотря на то, что на момент постановки вопроса не было никаких расширений, по состоянию на август 2018 года существует, по крайней мере, несколько расширений, которые, по-видимому, могут находить и удалять потерянные изображения:
VX orphanImages (платное продление)
«Плагин VX orphanImages сканирует вашу папку изображений Joomla! Для поиска элементов, которые не используются ни в одном контенте на сайте. Он использует основной компонент Media для маркировки потерянных изображений в списке, чтобы вы могли решить, сохранять их или удалять. "
ImageManager (бесплатные / платные версии)
«ImageManager for Joomla! Позволяет перемещать и переименовывать изображения, не теряя ссылки на изображения в статьях и пользовательских модулях HTML. Просто перетащите изображения, чтобы реструктурировать и очистить веб-сайт. Он также может перечислять все неиспользуемые изображения и удалять их. «.
источник