Afficher une image par défaut si l'image distante n'existe p

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher une image par défaut si l'image distante n'existe p

Re: Afficher une image par défaut si l'image distante n'existe p

par stopher » 25 août 2010, 21:25

Sinon , tu peux afficher ta page en brut , et gérer test tests via des requêtes ajax .

Avec une petite gestion de cache , ca doit le faire ....

-> ta page se charge , et lance de façon asynchrone ttes les requetes ajax pour checker les img
-> Si en cache ok , le résultat sera presque immédiat
-> sinon , le test d'une image ne retardera pas les tests des autres images , puisque tout sera fait en parallèle ..

Bon , ce n'est qu'une idée .. :) à creuser .. ou pas ;)

Ch.

Re: Afficher une image par défaut si l'image distante n'existe p

par xTG » 25 août 2010, 20:38

Vérifies le retour de ImageCreateFromJpeg, s'il est égal à false c'est qu'il y a eu impossibilité de récupérer l'image.

Re: Afficher une image par défaut si l'image distante n'existe p

par kassius250 » 25 août 2010, 19:33

Merci pour cette réponse. Le code fonctionne bien.

Cependant cette portion de code ralenti énormément le chargement de ma page (10 secondes de chargement supplémentaires pour 25 images). N'y aurait-il pas un moyen de valider si l'image existe ou non par l'utilisation de test sur l'image (taille de l'image avec imagesy($source) par exemple)?

Merci d'avance

Re: Afficher une image par défaut si l'image distante n'existe p

par AoSiX » 25 août 2010, 17:33

Si c'est une URL distante,
function url_exists($url) {
	$h = get_headers($url);
	$status = array();
	preg_match('/HTTP\/.* ([0-9]+) .*/', $h[0] , $status);
	return ($status[1] == 200);
}

Re: Afficher une image par défaut si l'image distante n'existe p

par xTG » 25 août 2010, 17:27

L'image se trouve-t-elle sur ton serveur ?

Re: Afficher une image par défaut si l'image distante n'existe p

par kassius250 » 25 août 2010, 17:01

Bonjour,

Merci pour ta réponse. Néanmoins file_exists($image) me retourne toujours 0. Mon image par défaut est donc affichée même lorsque l'image source existe.

As-tu une autre idée?

Re: Afficher une image par défaut si l'image distante n'existe p

par xTG » 25 août 2010, 15:20

if( !file_exists($src) )
  $src = ""; // chemin de l'image par défaut
Tout simplement :)

Afficher une image par défaut si l'image distante n'existe p

par kassius250 » 25 août 2010, 13:28

Bonjour à tous,

Voici mon problème : J'ai une portion de code permettant le redimensionnement d'images distantes (pour obtenir des miniatures). Cela fonctionne très bien, nénamoins, je souhaiterais pouvoir afficher une image par défaut dans le cas où l'image distante n'existe pas.

Voici mon code :

dans le programme principal :
echo " <br /><img src=image_miniature.php?src=$image ></img><br />";

voici le contenu de image_miniature.php :
<?php
$src = $_GET['src'];
$source = ImageCreateFromJpeg($src);
$srcheight = imagesy($source);
$srcwidth = imagesx($source); // or $srcwidth = 1;

$newheight = 45 ;
$ratio = 45 / $srcheight;
$newwidth = ceil($srcwidth * $ratio);

$thumb = ImageCreateTrueColor($newwidth, $newheight);
$source = imagecreatefromjpeg($src);
ImageCopyResampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $srcwidth, $srcheight);
ImageJpeg ($thumb);
?>

Avez-vous une piste pour me permettre l'affichage d'une image par défaut si l'image ($image) n'est pas disponible/n'existe pas ?

Merci par avance