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