`
muyu
  • 浏览: 222739 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用curl抓取图片,使文件md5值相同

    博客分类:
  • php
阅读更多

比较文件是否被篡改,用md5校验。同理,比较图片是否已经存在,也可以这样验证。

 

从网上抓图片,直接用fopen、fputs得到的图片相当于“被篡改”过了。如果用curl,则会得到一模一样的图片,和点击图片右键保存的效果一样。

 

<?php
$pic = 'http://www.google.com.hk/intl/zh-CN/images/logo_cn.png';

//获取图片二进制流
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pic);
curl_setopt($ch, CURLOPT_GET, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$imageData = curl_exec($ch);
curl_close($ch);

//保存图片
$tp = @fopen('demo.png', 'wb');
fwrite($tp, $imageData);
fclose($tp);

//比较原图与保存后的图片的md5值
$str1 = md5_file('logo_cn.png'); //事先手动保存下来
$str2 = md5_file('demo.png');
var_dump($str1 == $str2);

 

分享到:
评论

相关推荐

    C++Check文件MD5值文件上传服务器

    MD5是一种广泛使用的加密散列函数,它产生一个128位(16字节)的散列值,通常用32个十六进制数字表示。由于MD5计算的是文件内容的散列,如果文件内容有任何改变,MD5值也会随之变化,因此它是验证文件完整性的有效...

    php curl模仿form表单提交图片或文件

    在本文中,我们将深入探讨如何使用PHP的cURL库来模仿form表单提交,特别是提交图片或文件。我们将结合ThinkPHP5(简称TP5)框架来展示一个实际的例子。 首先,了解cURL。cURL是一个客户端URL传输库,它支持多种协议...

    使用CURL抓取网页数据

    本教程将详细讲解如何使用CURL来抓取网页数据,并结合C++的STL字符串进行分析,最终将提取的数据写入log.txt文件。 首先,我们要了解CURL的基本用法。CURL可以用来发送HTTP请求,获取服务器的响应。例如,使用CURL...

    qt5使用curl实现文件下载的示例程序

    总的来说,结合Qt5和cURL库实现文件下载,不仅可以利用cURL的强大功能,还能保持Qt5的优雅编程风格。这种组合特别适合处理复杂的网络请求,例如需要自定义头部信息、使用代理服务器或者处理特定的认证机制。通过学习...

    php应用curl扩展抓取网页类.zip

    5. **数据返回**:抓取的数据可能以文件流的形式返回,这意味着类可能会有一个方法,如`getDataAsStream()`,返回一个资源句柄,可以用于进一步的处理或保存到文件。 6. **测试**:为了确保类的功能正常,压缩包...

    windows下的CURL上传下载图片

    使用CURL库的`curl_easy_init`函数初始化一个CURL句柄,然后用`curl_easy_setopt`设置各种选项。对于下载操作,关键的选项是`CURLOPT_URL`,用来指定图片的URL,以及`CURLOPT_WRITEFUNCTION`,定义数据接收的回调...

    PHP 利用Curl实现多线程抓取网页和下载文件

    5. 文件下载:若需下载文件,可以设置cURL的`CURLOPT_FILE`选项指定输出文件,或者手动处理响应内容。 在实际应用中,可能还需要考虑其他因素,如请求头的设置、Cookie管理、重定向处理、超时设置等。通过巧妙地...

    go gin web框架文件上传,可以使用curl进行上传文件

    下面是如何使用curl上传文件的示例: ```bash curl -X POST -F 'file=@/path/to/your/local/file' http://localhost:8080/upload ``` 在这个命令中,`-X POST`指定使用POST方法,`-F 'file=@/path/to/your/local/...

    网页抓取工具curl

    它在IT行业中被广泛使用,特别是对于网络开发者和系统管理员,因为它允许他们方便地进行网页抓取、文件上传、API调用等操作。curl 是开源软件,由丹尼尔·斯特鲁特曼(Daniel Stenberg)创建,具有跨平台性,可在...

    可用的CURL bin文件

    5. "命令行CURL教程 Andy's Blog.htm"、"curl.html"、"CURL - 命令行下载工具.html":这些文件可能是关于如何使用CURL命令行工具的教程文档,可以帮助用户学习和理解CURL的用法。 CURL命令行工具的强大之处在于其...

    PHP实现通过CURL上传文件功能示例

    PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以”@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应...

    Curl实现Get下载zip文件、post上传zip文件、普通post请求等

    使用Curl在C++中实现GET请求下载ZIP文件,你需要设置URL指向ZIP文件的位置,并启用写入数据的回调函数。Curl的`curl_easy_setopt()`函数可以用来配置选项,如设置URL、设置回调函数等。回调函数接收服务器返回的...

    如何使用curl命令下载文件.docx

    使用curl命令下载文件非常简单,只需要指定要下载的URL即可。例如,要下载CentOS 8.1.1911的ISO文件,可以使用以下命令: [root@localhost ~]# curl ...

    php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法

    不过需要注意的是,淘宝的防爬虫策略是不断更新的,因此使用curl抓取淘宝页面的时候,需要考虑到反反爬虫技术的实现,比如设置合适的请求头、使用代理、处理Cookies等。 libcurl是一个客户端的URL传输库,被...

    curl下载curl包下载

    在压缩包`curl文件`中,可能包含了不同版本的`curl`,包括源代码、预编译二进制文件、文档、示例脚本等。解压后,你可以根据需要进行编译安装或直接运行二进制文件。如果包含源代码,通常需要`gcc`或其他C编译器来...

    curl 文件传输工具

    总结起来,`curl`是一个功能强大的文件传输工具,它的灵活性和广泛的功能使其成为开发者和系统管理员的得力助手。无论是在日常工作中下载文件,还是在复杂网络环境中进行数据交互,`curl`都能提供简洁、高效的解决...

    简单使用curl进行get请求并将服务器返回存进本地文件

    通过学习和熟练使用`curl`的各种选项,你可以在命令行环境中高效地进行Web服务的测试和数据抓取。在实际工作中,`curl`经常被开发者用来快速验证API接口、调试网络问题,或者作为自动化脚本的一部分。希望这个简短的...

    PHP使用Curl实现模拟登录及抓取数据功能示例

    - 通过`curl_exec()`获取验证码图片内容,然后将其保存到本地文件,供用户识别输入。 4. **模拟登录**: - 创建一个新的Curl会话,设置`CURLOPT_URL`为登录表单提交的URL。 - `CURLOPT_POSTFIELDS`设置为包含...

Global site tag (gtag.js) - Google Analytics