2010-03-12 14 views
0

J'utilise la fonction getimagesize en PHP, et la chaîne de chemin d'accès contient une esperluette, qui autrement est bien. La page me donne des erreurs où getimagesize() est appelé. En regardant le code source, cependant, je vois l'esperluette est passée par & plutôt que juste & Je présume que cela provoque des erreurs parce que PHP n'a pas besoin de le convertir en balise html afin de trouver le chemin, à droite ?PHP getimagesize avec l'esperluette dans la chaîne crée des erreurs

Voici l'erreur:

Warning: getimagesize(image.php?name=username&pic=picture) [function.getimagesize]: failed to open stream: No such file or directory

+2

S'il vous plaît poster, votre code. On dirait que vous passez un argument invalide pour getimagesize. – codaddict

+0

comme quoi? Je le collerais mais c'est sur mon autre machine. C'est juste une chaîne qui est une URL. $ location = "image.php? Name = nom d'utilisateur & image = image"; $ size = getimagesize ($ location); – RobHardgood

Répondre

1

Si vous voulez getimagesize chercher l'image à partir d'un serveur distant, en envoyant une requête HTTP et le téléchargement, vous devez utiliser une URL absolue (en commençant par http://domainname.ext/...)


Par exemple, cette partie du code:

$url = 'http://static.php.net/www.php.net/images/php.gif?test=glop&blah=huhu'; 
$data = getimagesize($url); 
var_dump($data); 

Donne-moi:

array 
    0 => int 120 
    1 => int 67 
    2 => int 1 
    3 => string 'width="120" height="67"' (length=23) 
    'bits' => int 7 
    'channels' => int 3 
    'mime' => string 'image/gif' (length=9) 


Si vous ne voulez pas chercher une image distante, alors, vous devez spécifier le chemin d'une image qui existe sur la même machine que celle où PHP fonctionne.

Et, dans votre cas, je doute que vous ayez un fichier physique appelé 'image.php?name=username&pic=picture'.

+0

Ce n'est pas ça. J'ai le même problème et j'utilise un chemin absolu. Le journal des erreurs affiche quelque chose comme ceci: PHP Attention: getimagesize (https://graph.facebook.com/1234/picture?type=normal & access_token = SECRETTOKENSUPERDUPER) [function.getimagesize]: échec de l'ouverture du flux: requête HTTP échouée! – eipipuz

+0

Le problème est que l'esperluette est encodée en url à & – eipipuz