首页 > 编程语言 >分享一个PHP的远程图片抓取函数

分享一个PHP的远程图片抓取函数

时间:2022-11-30 21:32:46浏览次数:38  
标签:false name url 抓取 filename ext file PHP 远程




​function​​​ ​​​grabImage(​​​ ​​​$url​​​ ​​​,​​​ ​​​$filename​​​ ​​​=​​​ ​​​''​​​ ​​​) {​



​if​​​ ​​​(​​​ ​​​$url​​​ ​​​==​​​ ​​​''​​​ ​​​) {​



​return​​​ ​​​false;​​​ ​​​//如果 $url 为空则返回 false;​



​}​



​$ext_name​​​ ​​​=​​​ ​​​strrchr​​​ ​​​(​​​ ​​​$url​​​ ​​​,​​​ ​​​'.'​​​ ​​​);​​​ ​​​//获取图片的扩展名​



​if​​​ ​​​(​​​ ​​​$ext_name​​​ ​​​!=​​​ ​​​'.gif'​​​ ​​​&&​​​ ​​​$ext_name​​​ ​​​!=​​​ ​​​'.jpg'​​​ ​​​&&​​​ ​​​$ext_name​​​ ​​​!=​​​ ​​​'.bmp'​​​ ​​​&&​​​ ​​​$ext_name​​​ ​​​!=​​​ ​​​'.png'​​​ ​​​) {​



​return​​​ ​​​false;​​​ ​​​//格式不在允许的范围​



​}​



​if​​​ ​​​(​​​ ​​​$filename​​​ ​​​==​​​ ​​​''​​​ ​​​) {​



​$filename​​​ ​​​= time().​​​ ​​​$ext_name​​​ ​​​;​​​ ​​​//以时间戳另起名​



​}​



​//开始捕获​



​ob_start();​



​readfile(​​​ ​​​$url​​​ ​​​);​



​$img_data​​​ ​​​= ob_get_contents();​



​ob_end_clean();​



​$size​​​ ​​​=​​​ ​​​strlen​​​ ​​​(​​​ ​​​$img_data​​​ ​​​);​



​$local_file​​​ ​​​=​​​ ​​​fopen​​​ ​​​(​​​ ​​​$filename​​​ ​​​,​​​ ​​​'a'​​​ ​​​);​



​fwrite(​​​ ​​​$local_file​​​ ​​​,​​​ ​​​$img_data​​​ ​​​);​



​fclose(​​​ ​​​$local_file​​​ ​​​);​



​return​​​ ​​​$filename​​​ ​​​;​



​}​

标签:false,name,url,抓取,filename,ext,file,PHP,远程
From: https://blog.51cto.com/u_710020/5900571

相关文章

  • PHP上传进度条深度解析
    分析一、程序需要php的apc模块的支持,关键点就是在上传的form里添加一个hidden的inpu标签,里面要有name为APC_UPLOAD_PROGRESS的属性,value值为一个随机数一遍多个人上传。apc......
  • PHP 大文件上传进度条实现
    核心提示:目前我知道的方法有两种,一种是使用PHP的创始人RasmusLerdorf写的APC扩展模块来实现,另外一种方法是使用PECL扩展模块uploadprogress实现。目前我知道的方法有两种......
  • Decrypt string in C# that was encrypted with PHP openssl_encrypt
    DecryptstringinC#thatwasencryptedwithPHPopenssl_encrypt回答1WellthiswasfuntoworkoutandrequiredjumpingintothePHPsourcecodewithsome......
  • php文件分片上传,断点续传
    ​PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间......
  • springcloud之远程调用
        在微服务架构中,通常存在多个服务之间的远程调用的需求.远程调用通常包含两个部分:序列化和通信协议.常见的序列化协议包括json,xml,bytes等.目前主流的远程调用......
  • spingcloud之基于ribbon的远程调用&负载均衡
    1-服务调用eureka内部继承了ribbon在创建RestTemplate的时候,声明@LoadBalanced在服务消费者order_service中,找到启动类OrderApplicationpackagecn.itcast.order;importo......
  • Win10多用户同时远程桌面
    Win10多用户同时远程桌面原文https://blog.csdn.net/Joker00007/article/details/123302837 微软Server版操作系统默认是支持多用户登陆的,例如WindowsServer2012,而W......
  • php版学生成绩管理系统源码(文末有下载方式)
    大家好, 我是程序猿零壹。给大家分享一款学生成绩管理系统,该系统使用php+mysql开发,是一款用于管理课程信息、老师信息、学生信息及成绩的系统,包含最基础的增删改查,可以作......
  • PHP处理png图片 保留透明
    做了一个图片接口可以控制输出的图片宽和高 顺便压缩质量遇到个问题就是png透明图 改完之后透明底变成黑色了然后用了网上的方法$color=imagecolorallocate($ne......
  • 谷歌授权登录APP (PHP部分)
    在谷歌查看自己的client_id 网址:https://console.cloud.google.com/apis/credentials用composer安装谷歌的扩展包我这里下载的是2.12.1版本 要求 PHP5.6.0......