PHP - 从HTML文档中的图像获取原始图像数据

时间:2013-11-06 14:23:20

标签: php html image mime-types binary-data

如何正确抓取HTML文档中显示的图像并将其提供给PHP以作为图像二进制文件读取。我没有直接访问图像文件。我试图抓取的图像通过PHP以HTML格式输入客户端,并以HTML格式打印并使用<img>标签显示图像。 src只是我目前所在页面的链接。该链接是GET请求。

链接如下所示:

GETIMAGE.php?type=small&path=/path/to/image.png

这不会返回带有图像MIME类型的实际图像。而是显示图像的HTML。

我无法访问GETIMAGE.php文件中的源代码。这是加密的,因为我正在使用获得许可的门户解决方案。

这是从GETIMAGE.php脚本返回的源:

<html>
<head>
    <meta name="viewport" content="width=device-width">
    <title>GETIMAGE.php (80×112)</title>
    <style type="text/css"></style>
</head>
<body style="margin: 0px;">
    <img style="-webkit-user-select: none" src="http://portal.craftnordic.com/PORTAL/GETIMAGE.php?type=small&amp;path=Path/To/Image.png">
</body>

3 个答案:

答案 0 :(得分:1)

如果没有看到您的脚本,很难弄清楚您在寻找什么。我们假设页面生成如下输出:

<img src="http://imgplacewhatever.com/lskjdflksdjf.png" />

使用这个优秀的DOM Parsing Library,我们可以这样做:

$html = file_get_html('GETIMAGE.php?type=small&path=/path/to/image.png');
$pictures = array();
foreach($html->find('img') as $element) 
   $pictures[] = $element->src;
}

foreach ($pictures as $picture) {
   $data = file_get_contents($picture);
   ## Do something with the data.
}

然后你会在$pictures中找到所有图片的数组。

祝你好运。

答案 1 :(得分:0)

您可以使用file_get_contents()方法获取数据。

您可以在这里使用

$filePath=$_GET['path'];
$imageData=file_get_contents($filePath);

答案 2 :(得分:0)

不知道你是否找到了答案,但我终于做到了。 file_get_contents或任何CURL方法接收的数据实际上是以gzip格式返回数据。当我将输出保存到文件并将其作为gzip存档提取时,图像就在那里。