Como obter a lista de todos os arquivos de imagem órfãos?

8

Gostaria de criar a lista de imagens que não são mais usadas em nenhum item de conteúdo para que possam ser removidas do disco. Qual é o melhor método para gerar essa lista?

miroxlav
fonte

Respostas:

5

Não tenho certeza se existe um melhor método para fazer isso. A única maneira de pensar exige um pouco de esforço. Ou seja, gerando uma lista de todas as imagens na tabela de conteúdo no banco de dados (e potencialmente em módulos, menus, banners, etc. no sistema de arquivos e compare entre cada lista e remova as imagens que não são usadas.

Portanto, isso seria parecido com:

1) Obtenha uma lista de todas as imagens na tabela de banco de dados do com_content. Despejar todas as linhas, regex para <img src="images/stories/an-image.jpg" />. Outra maneira é usar o método strip_tags () do php e permitir apenas a tag. Acho isso mais fácil do que escrever um regex em geral. Basicamente, execute um script php para criar esta lista para você como um documento de texto ou csv.

2) Obtenha uma lista de todas as imagens no site. Você pode usar o grep na linha de comando para fazer isso, acredito. Você provavelmente poderia fazê-lo com algum tipo de método de sistema de arquivos php recursivo também.

3) coloque os dois em uma planilha e execute algum tipo de comparação em cada coluna para ver se a imagem é usada, compilando uma lista de imagens não utilizadas em uma terceira coluna.

-

Pessoalmente, a menos que você tenha uma tonelada de imagens, não tenho certeza se vale a pena. Mas você precisará determinar se o seu caso de uso está pendente. Também pode haver uma solução muito mais simples que outra pessoa terá que sugerir!

Chad Windnagle
fonte
3

Não estou ciente de uma extensão existente que o faria. Sua melhor aposta seria escrever um script que verifique cada imagem em relação às tabelas no banco de dados onde o conteúdo pode ser armazenado para ver se estão em uso.

Michael
fonte
3

Se você tiver seus registros de acesso, poderá retirar todos os arquivos de imagem solicitados nos últimos X meses (será necessário jogar com todos esses dados). Portanto, esses itens provavelmente estão em uso no seu site real (mas não 100%). Dependendo do conteúdo e da estrutura do site, e se o site não for realmente grande (ou seja, 1 milhão de artigos), é muito provável que o restante provavelmente não esteja em uso (novamente, não 100%).

Acho esta solução tão fácil. Faça backup das imagens antes da exclusão. Você pode acompanhar mais tarde os erros 404 ao tentar abrir arquivos específicos e pode decidir restaurá-los.

É uma solução suja, mas não há realmente nenhuma maneira fácil. A melhor opção seria seguir os conselhos do Chade e escrever seu próprio analisador.

Ivo
fonte
Boa ideia, obrigado. No meu provedor de hospedagem, os logs de acesso não são acessíveis para nós clientes, mas essa resposta ainda pode ser positiva para outros leitores.
Miroxlav 14/05
0

Embora não existam extensões quando a pergunta foi feita, a partir de agosto de 2018, existem pelo menos algumas extensões que aparentemente podem localizar e excluir imagens órfãs:

VX orphanImages (extensão paga)

"O plugin VX orphanImages examina sua pasta de imagens do site Joomla! Para encontrar itens que não são usados ​​em nenhum conteúdo do site. Ele usa o componente principal de Mídia para marcar imagens órfãs na lista, para que você possa decidir se deseja mantê-las ou removê-las. "

ImageManager (versões gratuitas / pagas)

"ImageManager para Joomla! Permite mover e renomear imagens sem perder o link da imagem em Artigos e Módulos HTML personalizados. Basta arrastar e soltar suas imagens para reestruturar e limpar seu site. Ele também pode listar todas as imagens não utilizadas e excluí-las . "

Neil Robertson
fonte