我在另一个网站上用PHP绘制图像,这有效。我从一个正在运行的网页上获取信息。但它在一起并不只是显示图像。 如果我剪切图片部分并将其放在最后,则会出错。 (例如,如果您需要查看JSON页面的外观,请使用昵称Mazey) 是否与组合文件获取内容和我的卷曲功能有关?
<?php
$profPic = json_decode( file_get_contents( 'https://api.kag2d.com/player/'.urlencode( $_GET['nickname'] ).'/avatar/s' ) );
if ( $profPic ) {
if ( isset( $profPic->small ) ) {
$profPic = $profPic->small;
$extension = strtolower( pathinfo( $profPic, PATHINFO_EXTENSION ) );
$content = file_get_contents( $profPic );
if ( $content ) {
header( "Content-type: image/".$extension );
echo $content;
exit();
}
}
} else {
echo "error";
}
$stats = json_decode(file_get_contents('https://api.kag2d.com/player/'.urlencode( $_GET['nickname'] ).'/status' ));
if ( $stats ) {
if ( isset ( $stats->playerInfo ) ) {
echo $stats->playerInfo->username;
} else {
echo 'Error';
}
} else {
echo 'Error';
}
?>
答案 0 :(得分:0)
您正在尝试在同一文件中返回两个不同的HTTP响应。如果您阅读了图像部分,则在打印图像数据后会执行exit()。这就是它停止处理的原因。
当我运行源中包含的URL时,返回的用户名与$ _GET ['nickname']中的值相同。你真的需要看看这个价值吗?如果您刚刚返回图像,它将起作用。
解决方案是返回您的第三方服务器正在执行的JSON文档,并在其中嵌入所有信息。拥有image data as an URL是合法的HTML,因此整个内容可以作为单个JSON文档返回。来自RFC2397的基于HTML的示例
<IMG SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAA
AMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZt
fzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbt
LiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYG
ejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3i
q9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXy
ym7PHhhx4dbgYKAAA7" ALT="Larry">
与电子邮件不同,似乎没有人在HTTP中开发多部分的mime响应。我做了一个快速谷歌,但没有有用的结果。