因为回声图像而忽略文字?

时间:2013-07-26 19:16:50

标签: php

我在另一个网站上用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';
  }


?>

1 个答案:

答案 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响应。我做了一个快速谷歌,但没有有用的结果。