怎么php使用socket获取远程图片
步骤:
1,匹配URL中的主机名和文件部分
2,创建socket并连接到目标服务器
3,构造HTTP请求并发送
4,读取HTTP响应并解析
5,保存内容到文件并关闭socket连接
代码实现如下:
<?php /* * 使用socket获取远程资源(网页,图片等) * url 资源URL * savepath 资源的保存路径 * return true/false */ function get_remote_picture($url,$savepath="./"){ set_time_limit(0); $pattern = '/(http:\/\/)?([^\/]+)(.+)/'; $res = preg_match($pattern, $url, $matches); if($res == 0){ return false; } $host = "";//主机名 $file = "";//请求的文件 if(count($matches) == 3){ $host = $matches[1]; $file = $matches[2]; }else if(count($matches) == 4){ $host = $matches[2]; $file = $matches[3]; }else{ return false; } $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $res = socket_connect($socket,gethostbyname($host),80); if(!$res){ //echo socket_strerror(socket_last_error($socket)); socket_close($socket); return false; } $request = ""; $request .= "GET $file HTTP/1.1\r\n"; $request .= "Host: $host\r\n"; $request .= "Connection: close\r\n\r\n"; $len = socket_write($socket,$request); $response = ""; while($buf=socket_read($socket,512)){ if(strlen($buf) == 0){ break; } $response .= $buf; } if(strpos($response,"\r\n\r\n")){ $arr = explode("\r\n\r\n",$response); if(!file_exists($savepath)){ @mkdir($savepath); } $savepath = rtrim($savepath,'/').'/'; file_put_contents($savepath.basename($file),$arr[1]); }else{ socket_close($socket); return false; } socket_close($socket); return true; } /* 获取百度logo */ $url = "http://su.bdimg.com/static/superplus/img/logo_white.png"; $result = get_remote_picture($url); if($result){ echo 'get remote picture success'; }else{ echo 'get remote picture failed'; }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前
By DDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前
By DDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前
By DDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前
By DDD
Atomfall指南:项目位置,任务指南和技巧
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)