2017-02-14 60 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