PHP - 阅读与URL
问题描述:
这里我的问题的图像,我做一个查询到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一起使用。
谢谢!
答
你可以试试这个,看看它是否起作用?
$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
@Hexadect哪里小数? – BenM
@BenM你可以设置0,5的限制吗? – DamiToma
@Hexadect是的。第一个整数就是偏移量。因此'LIMIT 10,5'将获取5条记录,偏移量为10个。'LIMIT 5 OFFSET 0' =='LIMIT 0,5' =='LIMIT 5'。 – BenM