';

Olá galera,

Depois de tanto tempo sem escrever por aqui, hoje vou dar-lhes uma
dica muito interessante.

O problema era o seguinte, eu tinha a url da imagem, e tinha que verificar
se ela existia no servidor (remoto).
Pesquisei e encontrei varias formas de fazer isso.

Um dos primeiro exemplos que achei foi esse:

[php]
$url=getimagesize(“http://www.google.com/intl/en_com/images/srpr/asdf.png”);

if(!is_array($url))
{
$default_image =”http://www.google.com/intl/en_com/images/srpr/logo3w.png”;
}
[/php]

Problema: Muito lento.

Outro exemplo:

[php]
function is_webfile($webfile)
{
$fp = @fopen($webfile, "r");
if ($fp !== false)
fclose($fp);

return($fp);
}
is_webfile(‘http://www.google.com/intl/en_com/images/srpr/asdf.png’);
[/php]

Problema: Lento tambem.

Mais um:

[php]
function checkRemoteFile($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
// don’t download content
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==FALSE)
{
return true;
}
else
{
return false;
}
}
checkRemoteFile(‘http://www.google.com/intl/en_com/images/srpr/asdf.png’);
[/php]

Problema: Um pouco mais rápido que os demais, mas ainda lento.

Solucão: JAVASCRIPT

[js]
function imagePlaceholder()
{
//Use o seletor jquery para as imagens que deseja usar o placeholder.
$(SELETOR_JQUERY).each(function(){
$(this).error(function() {
$(this).attr(‘src’, ‘http://www.google.com/intl/en_com/images/srpr/logo3w.png’);
});
});
}
[/js]

Com essa solução em javascript funcionou bem e não deixou o site lento.

Espero que seja util.

Obrigado.


@emersonbroga

Programador há mais de 15 anos, sou formado em Desenvolvimento de Sistemas pela Faculdade Pitágoras e pós-graduado em Gestão Estratégica de Marketing pela PUC Minas. Trabalhei em diversas agências de publicidade e desenvolvimento de software e atualmente trabalho em projetos internacionais como FOX.com, FXNetworks.com, NatGeo.com entre outros. Estou atualmente dedicando meu tempo a ensinar programação em meu blog e redes sociais. Saiba mais em https://emersonbroga.com/e/sobre/.