Projetos Lucas Peperaio Códigos e Aplicativos úteis para a Internet

Script para converter imagens em UTF-8

Quando enviamos imagens com acentos no WordPress, dependendo do sistema operacional do servidor, haverá um erro na gravação do nome. Isso porque o WordPress não converte o nome da imagem para UTF-8, deixando uma imagem com o nome “araújo” salva como “araújo”. 

Este erro também ocorre quando há uma migração do WordPress entre servidores Windows e Linux, corrompendo o nome de imagens com acentos. A função deste script que eu desenvolvi é bem simples: Ao ser executado, ele acessa todas as pastas dentro de “wp-content/uploads” e converte o nome de todas as imagens para UTF-8.

Salve esse script como batch.php, envie via FTP para o seu blog WordPress e salve-o na pasta wp-content. Após isso, execute o script pelo navegador, acessando-o diretamente. Aguarde o progresso, dependendo da quantidade de imagens o processo pode ser demorado.

<?php
	/**
	* Bath para converter acentos corrompidos em caracteres UTF-8
	*
	* @author Lucas Peperaio <http://www.lucaspeperaio.com.br>
	* @version 1.0
	* @since 25/07/2012
	*/
	
	set_time_limit(0); 
	ini_set("memory_limit", "100M" );
	
	$dir = realpath( dirname( __FILE__ ) . "/uploads/" );
	$arquivos = scandir( $dir );
	$pasta = array();
	chdir( $dir );
				
	//Adicionar no Array Multidimensional $pasta todas as pastas referente ao ano das imagens
	foreach( $arquivos as $item ) {
		if( is_dir( $item ) and !preg_match( "/^[\.]{1,2}$/", $item ) ) {
			$pasta[$item] = array( );
		}
	}
				
	//Foreach nas pastas do ano
	foreach( $pasta as $key => $value ) {
		chdir( $dir . "/$key" );
		$arquivos = scandir( "." );
					
		//Adicionar as pastas de mês, foreach
		foreach( $arquivos as $item ) {
			if( is_dir( $item ) and !preg_match( "/^[\.]{1,2}$/", $item ) ) {
				$pasta[$key][$item] = array();
				chdir( $item );
				$arquivos = scandir( "." );
							
				//Adicionar as fotos, foreach e conversão
				foreach( $arquivos as $foto ) {
					if( !preg_match( "/^[\.]{1,2}$/", $foto ) ) {
						echo "Renomeando: $foto para ", utf8_decode($foto), "<br/>";
						rename( $foto, utf8_decode($foto) );
						$pasta[$key][$item][] = $foto; 
					}
				}
				chdir( "../" );
			}
		}
	}
	
	die( "Processo concluído" );
?>
Pesquisas
© 2011 - 2012
Desenvolvido e Mantido por Lucas Peperaio