2013-07-26 62 views
1

我是從另一個網站,它的作品在PHP中繪製圖像。我正在從一個正在工作的網頁獲取信息。但它們並不僅僅只是表現形象。 如果我剪下圖片部分並將其放在末尾,則會顯示錯誤。 (使用例如暱稱Mazey,如果您需要查看該JSON頁面的外觀如何) 將它與文件獲取內容和我的捲曲函數結合起來嗎?因爲echo'ing圖像而忽略文字?

<?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

您試圖在同一個文件中返回兩個不同的HTTP響應。如果您閱讀圖像部分,則會在打印圖像數據後執行退出()。這就是爲什麼它停止處理。

當我運行包含在源代碼中的URL時,返回的用戶名與$ _GET ['nickname']中的值相同。你真的需要看看這個價值嗎?如果你只是返回圖像,它會工作。

解決方案是返回一個JSON文檔,就像您的第三方服務器正在做的一樣,並在此嵌入所有信息。這是合法的HTML有image data as an URL,所以整個事情可以作爲單一的JSON文件返回。基於HTML的示例來自RFC2397

<IMG SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAA 
AMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZt 
fzgFzByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbt 
LiOSpa/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYG 
ejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3i 
q9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXy 
ym7PHhhx4dbgYKAAA7" ALT="Larry"> 

與電子郵件不同,沒有人似乎正在開發HTTP中的多部分MIME響應。我做了一個快速谷歌,但沒有有用的結果。

+0

我不需要自己查看用戶名,如果需要,我也可以使用Role,但我也用它來測試它(因爲我需要測試是否可以正確連接)。 – Mazey

+0

對不起,斜體文字似乎沒有正確渲染「解決方案」。 –

+0

沒有設法使用uri。 – Mazey