我正在处理的网站的其中一个页面应显示有关漫画的信息,例如封面图像。
我正在尝试显示通过卷曲请求获得的图像。
<?php
if(isset($_GET['info'])) {
$postedData = $_GET["info"]; //json object containing info about manga such as author/title etc.
$info = json_decode($postedData, true);
$mangacoverid = $info['im']; //id of the cover image that i'm getting from json object
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://cdn.mangaeden.com/mangasimg/" . $mangacoverid); //link of API i'm using and adding cover id to it
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$picture = curl_exec($ch);
curl_close($ch);
header('Content-type: image/jpeg');
echo $picture; //displays image in browser
}
?>
-用于测试目的的某些“ mangacoverid”: ff / ff94bb880357b6b811bccbbfd3356c5ec41fbb184291323f0ed6a86a.jpg c1 / c1b0173d8986681f23ecf5a69d26aa9dab4a04db4d40f99bed539198.jpg 0c / 0cf6ebf78074e748ab2aeea3a0fcb9e0dd43040974c66e24fa46703f.jpg 5d / 5dcfed2e033c2da62e7ac89367533ebbc344373c46a005e274a16785.png 18 / 18b1f0b13bccb594c6daf296c1f9b6dbd83783bb5ae63fe1716c9091.jpg 35 / 35bf6095212da882f5d2122fd547800ed993c58956ec39b5a2d52ad4.jpg
-虽然我可以在页面中显示图像,但是整个页面背景都变成黑色,而图像在页面中间。 (即style =“ margin:0px; background:#0e0e0e;>”)。
我想做的是将图像插入HTML标记中,以便将其放置在页面的其他位置。
我尝试仅将附加了'mangacoverid'的普通cdn链接放入标签中,但是图像提供程序不允许进行热链接,并且会引发403错误。
任何帮助都非常感谢!
答案 0 :(得分:0)
我测试了您的代码,当对封面ID进行硬编码时,它似乎可以正常工作。 问题可能是通过查询参数传递的JSON无法正确解析(由于URL编码)吗?
使用硬编码的封面ID,它对您是否正常工作?
文件image.php
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf('https://cdn.mangaeden.com/mangasimg/%s', $_GET['id']));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$picture = curl_exec($ch);
curl_close($ch);
header('Content-type: image/jpeg');
echo $picture;
然后在您的脚本中生成显示图像的页面:
// Assuming $info holds the decoded json for the manga
echo(sprintf('<img src="image.php?id=%s>', $info['im']);
答案 1 :(得分:0)
好,我将发布解决方案,以防有人碰到。
代码与原始代码基本相同:只需编辑几行,如下所示。
-我在名为“ tempcover.jpg”的目录中创建了一个文件。
-我使用'imagecreatefromstring($ picture)'函数获得图像。
-我使用'imagejpeg($ img,'tempcover.jpg',100)'将图像保存到文件中。
这样做,我可以只引用HTML标记中的文件,并以我想要的方式显示它。
(n-1)