2013-07-01 1 views
0

J'essaie de télécharger une image avec la fonction PHP file_get_contents.file_get_contents ne fonctionne pas avec certaines images

Il reçoit un urlencode (url) via GET et renvoie le contenu. Voici le code:

<?php 
    $url=($_GET["url"]); 
    $url2 = ("http://www.liberoquotidiano.it/resizer.jsp?w=500&h=-1&maximize=true&img=upload/cut1372677360319.jpg&filetype=image.jpg"); 

    echo "<br>Url 1 is via GET <br> Url2 is a variable instantiated in the script and its value is manually inserted."; 
    echo "<br>file_get_contents Url2 work, but with url1 not,althought the url content is the same. "; 
    echo "<br>1.url= ".$url; 
    echo "<br>2.url= ".$url2; 

    $r=strcmp($url2,$url); 
    if($r==0){ 
     echo "correct"; 
    }else{ 
     echo "<br><br>string compare with url and url2 return ".$r; 
    } 
    echo "<br><br>launch: file_get_contents(url) => "; 
    $image_data = file_get_contents($url); 

    echo $image_data; 
     ?> 

url et url2 sont les mêmes mais le code php strcmp retour 1, et non 0 ... Je ne comprends pas pourquoi. Si je lance

file_get_contents($url); 

il ne fonctionne pas et je n'ai pas retourné aucune valeur. Si je lance

file_get_contents($url2); 

fonctionner correctement. La curiosité est que url et url2 contiennent la même valeur, mais les résultats diffèrent.

C'est le lien le script: http://www.clouderize.it/michele/get_cont.php?url=http%3A%2F%2Fwww.liberoquotidiano.it%2Fresizer.jsp%3Fw%3D500%26amp%3Bh%3D-1%26amp%3Bmaximize%3Dtrue%26amp%3Bimg%3Dupload%2Fcut1366795446185.jpg%26amp%3Bfiletype%3Dimage.jpg

Ce qui peut être le problème? Merci beaucoup.

Répondre

1

$ url = $ _GET ['url]; Utilisez-vous n'importe quel type de choses html dans le formulaire à partir duquel vous allez chercher l'URL.? Est-il là que l'utilisateur est en train d'entrer l'URL avec des balises html ou vous incluez des balises html avec l'URL. Parce que, si strcmp ne donne pas 0 comme sortie, cela signifie que les deux chaînes d'URL ne sont pas égales. Il doit y avoir quelque chose qui cause le problème. Et ce peut être des tags html. Juste vérifier une fois.

+0

Avec l'URL que j'ai posté j'ai envoyé un en-tête simplement avec cette valeur GET (donc je pense que ce n'est pas un problème comme celui que vous mentionnez): url = http% 3A% 2F% 2Fwww.liberoquotidiano. it% 2Fresizer.jsp% 3Fw% 3D500% 26amp% 3Bh% 3D-1% 26amp% 3Bmaximize% 3Dtrue% 26amp% 3Bimg% 3Dupload% 2Fcut1366795446185.jpg% 26amp% 3Bfiletype% 3Dimage.jpg – michele

+0

Je ne vois rien sur html dans le paramètre get – michele

0

Oks le problème est que dans l'URL il y a quelques & que j'ai substitué ceux-ci avec &.

$src=str_replace("&amp;", "&", $src); 
Questions connexes