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:

<br />
$url=getimagesize(“http://www.google.com/intl/en_com/images/srpr/asdf.png”);</p>
<p>if(!is_array($url))<br />
{<br />
	$default_image =”http://www.google.com/intl/en_com/images/srpr/logo3w.png”;<br />
}<br />

Problema: Muito lento.

Outro exemplo:

<br />
function is_webfile($webfile)<br />
{<br />
 $fp = @fopen($webfile, &quot;r&quot;);<br />
 if ($fp !== false)<br />
  fclose($fp);</p>
<p> return($fp);<br />
}<br />
is_webfile('http://www.google.com/intl/en_com/images/srpr/asdf.png');<br />

Problema: Lento tambem.

Mais um:

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

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

Solucão: JAVASCRIPT

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

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

Espero que seja util.

Obrigado.


@emersonbroga

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 e atualmente trabalho em projetos internacionais como FOX.com, FXNetworks.com, NatGeo.com entre outros.