我尝试使用PHP文件将图像从URL保存到我的计算机。它在我搜索的卡片只有一个名字时起作用;但是,当我尝试使用多个名字的卡片时,我得到了:
Warning: file_get_contents(http://gatherer.wizards.com/Handlers/Image.ashx?name=black lotus&type=card&.jpg): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in C:\xampp\htdocs\MTGFetcher\results.php on line 6
这是我的cardfetch.php代码;
<form action="results.php" method="post">
Name of card: <br>
<input type="text" name="cardname" value="cardresult">
<input type="submit" value="Submit">
</form>
对于我的results.php:
<?php
$results = $_POST['cardname'];
$url = "http://gatherer.wizards.com/Handlers/Image.ashx?name=" . $results . "&type=card&.jpg";
$img = "Pictures/$results.jpg";
file_put_contents($img, file_get_contents($url));
?>
<img src="<?php echo $url ?>">
为什么不使用多个单词?
答案 0 :(得分:1)
这个空间可能会让人失望。使用http_build_query
,它会转换任何不良字符:
$query_array = array('name'=>$_POST['cardname'], 'type'=> 'card', '.jpg');
$url = "http://gatherer.wizards.com/Handlers/Image.ashx?".http_build_query($query_array);
您可能必须使用数组,因为"&type=card&.jpg";
有点奇怪。