file_get_contents不适用于某些图像

时间:2013-07-01 12:08:59

标签: php image file-get-contents imagedownload

我正在尝试使用file_get_contents PHP的函数下载图像。

它通过GET接收urlencode(url)并返回内容。 这是代码:

<?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和url2是相同的但是php strcmp代码返回1,而不是0 ...我不明白为什么。 如果我发布

file_get_contents($url);

它不起作用,我没有返回任何值。 如果我发布

file_get_contents($url2);

它正常工作。

奇怪的是,url和url2包含相同的值,但结果不同。

这是脚本中的链接: 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

可能是什么问题? 非常感谢你。

2 个答案:

答案 0 :(得分:1)

$ url = $ _GET ['url];

您是否正在使用您从中获取网址的任何html类型的内容。用户是否也在输入带有html标签的url,或者你在网址中加入了一些html标签。因为,如果strcmp没有给出0作为输出,则意味着两个url字符串不相等。必定会有一些问题导致问题。它可以是html标签。只需检查一次。

答案 1 :(得分:0)

问题是,在url中有一些&amp;我用&amp;。

代替了这些
$src=str_replace("&amp;", "&", $src);