我正在尝试使用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包含相同的值,但结果不同。
可能是什么问题? 非常感谢你。
答案 0 :(得分:1)
$ url = $ _GET ['url];
您是否正在使用您从中获取网址的任何html类型的内容。用户是否也在输入带有html标签的url,或者你在网址中加入了一些html标签。因为,如果strcmp没有给出0作为输出,则意味着两个url字符串不相等。必定会有一些问题导致问题。它可以是html标签。只需检查一次。
答案 1 :(得分:0)
问题是,在url中有一些&amp;我用&amp;。
代替了这些$src=str_replace("&", "&", $src);