';

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.


2 Comments

Flávio Ferreira · 2012-03-07 at 09:21

SHow de Bola

Equipe Beta · 2012-04-05 at 10:26

poo eu gostei muito da sua primeira solução!! porém ela é muuuuuuuito pesada!
eu criei a seguinte função

http://pastebin.com/XZ7W1ns8

funciou perfeitamente, porém meu servidor ficou fora do ar por 3 horas por conta dessa função! muitas requisiçõs desse tipo juntas deram esse erro!! vou verificar outra que seja mais leve!!
mase mesmo assim mto obrigado por esse script

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *