2010-07-29 4 views
1

Je développe une application de test/apprentissage. Je me demande comment puis-je vérifier si une image d'un autre site/domaine ... je me suis cassé ma logique de validation à laDe toute façon je peux vérifier si une URL pointe vers une image valide (en utilisant JS/PHP/ZendFramework)?

  • suivant existe
  • est une image
  • est de type valide
  • est
  • de dimensions spécifiques
  • est inférieure à une taille maximale - disons que je souhaite que l'image se charge rapidement. La ressource d'hébergement n'est pas la mienne.

Répondre

4

getimagesize() peut faire tout sauf le dernier de vos points. Pour cela, vous pouvez utiliser filesize(). Pour filesize() vous devrez le télécharger réellement, mais vu que getimagesize() exige également cela, vous pouvez simplement l'enregistrer dans un fichier temporaire. Vous pouvez utiliser tempnam() pour obtenir un fichier temporaire qui n'entre pas en conflit avec les autres.

+0

+1 pour tempnam, ne savait pas qu'il existait :) –

0
  1. vérifier si url existe:

    $handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($handle); $status = curl_getinfo($handle, CURLINFO_HTTP_CODE); if($status == 404) {//return true or whatever}

  2. est une image, est de type valide: déterminer si l'extension du fichier est valide, par exemple en utilisant

    preg_match('/(jp[e]?g|png|gif|etc...)$/i', $url);

  3. est de dimensions spécifiques: utilisation GD pour créer une ressource, puis vérifier la taille par getImageSize($resource)

  4. est inférieure à la taille maximale: en plus Étape 1 - $size = curl_getinfo($handle, CURLINFO_SIZE_DOWNLOAD);

Rappelez-vous que vous devez avoir cURL et GD activé.

+0

donc je vois que j'ai encore besoin de télécharger le fichier ... hmm –

Questions connexes