2017-02-14 65 views
0

這裏我的問題的圖像,我做一個查詢到MySQL(PDO)爲給我一個表nammed化身誰包含ID和URL的最後5個網址:PHP - 閱讀與URL

$response = $dbh->query("SELECT url FROM avatar ORDER BY id_URL DESC LIMIT 0,5 "); 

並且我做了:

while ($donnees = $response->fetch()) 
{ 

$urlImage = $donnees['url']; //'url' contains the URL 
$result = file_get_contents($urlImage);   
header('Content-Type: image/png'); 
echo $result; 
?> 

但是標題只是返回一個小的空白方塊。但是,「$ result = file_get_contents($ urlImage);」採取正確的URL,因爲當我這樣做:

$urlImage = $donnees['url']; //'url' contains the URL 
$result = file_get_contents($urlImage);   
echo $result; 
?> 

這只是表明了(一噸的特殊字符)「的形象encodage」但不顯示圖像。

我也嘗試與「imagick」,但它對我說,該類不存在,我不認爲imagecreatefrompng可以與URL一起使用。

謝謝!

+0

@Hexadect哪裏小數? – BenM

+0

@BenM你可以設置0,5的限制嗎? – DamiToma

+0

@Hexadect是的。第一個整數就是偏移量。因此'LIMIT 10,5'將獲取5條記錄,偏移量爲10個。'LIMIT 5 OFFSET 0' =='LIMIT 0,5' =='LIMIT 5'。 – BenM

回答

1

如果您嘗試使用動態圖片來源,其中您的url是圖片來源,並且該圖片不起作用,那麼問題可能是頁面上某處存在空格或多餘字符,這會使在某些情況下,瀏覽器將其視爲文檔而不是圖像。

你的問題是,瀏覽器不理解它應該是一個圖像。

你總是可以這樣做:

<img src="<?=$urlImage?>"> 
+0

1.''是一個自動關閉標籤。 2.這是'header('Content-Type:image/png');'的用途。 – BenM

+0

但是,這工作,謝謝 – Lafdoma

+0

@BenM。我來幫助一個你無法做到的人,而你卻給我一個倒退? –

3

你可以試試這個,看看它是否起作用?

$image = file_get_contents($donnees['url']); 
$finfo = new finfo(FILEINFO_MIME_TYPE); 
header('content-type: ' . $finfo->buffer($image)); 
echo $image; 

這是假設處理一個圖像。一個PHP腳本可以返回一個圖像。如果您想將圖像組合和渲染一個很長的圖像,然後也許你應該看看http://image.intervention.io/

編輯

我嘗試了上面的代碼之後明白的是,如果你把的file_get_contents頭之前,則顯示原始字符。但是你把它放在頭後,然後一切都似乎是工作

$image="http://www.hillspet.com/HillsPetUS/v1/portal/en/us/cat-care/images/HP_PCC_md_0130_cat53.jpg"; 
$filename = basename($image); 
$file_extension = strtolower(substr(strrchr($filename,"."),1)); 
switch($file_extension) { 
    case "gif": $ctype="image/gif"; break; 
    case "png": $ctype="image/png"; break; 
    case "jpeg": 
    case "jpg": $ctype="image/jpeg"; break; 
    default: 
} 

header('Content-type: ' . $ctype); 
$image = file_get_contents($image); 
echo $image; 

工作fiddle

+0

不,我想返回一個圖像,這是一個循環,所以變量將始終呈現一個圖像? 但這就是我的代碼,它返回的是圖像的元數據。 – Lafdoma

+0

您已經在循環內寫入了標題和回顯。這意味着它會回顯5次。所以即使客戶端認爲它是一個圖像,但它不能呈現它,因爲它是5個圖像URL的一些組合。嘗試做限制0,1 –

+0

嗯,是的,我明白你說什麼了,但我做了限制0,1並刪除循環,這是給出了相同的結果。 – Lafdoma