단계:
1. URL에서 호스트 이름과 파일 부분을 일치시킵니다.
2. 소켓을 만들고 대상 서버에 연결합니다.
3. HTTP 요청 및 전송
4, HTTP 응답을 읽고 구문 분석
5, 콘텐츠를 파일에 저장하고 소켓 연결 닫기
코드는 다음과 같이 구현됩니다.
<?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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전ByDDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전ByDDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
3 몇 주 전ByDDD
R.E.P.O. 저축 설명 (및 파일 저장)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
