如何正确抓取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&path=Path/To/Image.png">
</body>
答案 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存档提取时,图像就在那里。