gpt4 book ai didi

php获取远程图片的两种 CURL方式和sockets方式获取远程图片

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php获取远程图片的两种 CURL方式和sockets方式获取远程图片由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

方式1:sockets  。

复制代码代码如下

$a = "http://jb51.net/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg";  $local = 'socket1.gif';  $aa = getImg($a,$local);  /*  *@ 完整的图片地址  *@ 要存储的文件名  */  function getImg( $url = "", $filename = "" ) {  if(is_dir(basename($filename))) {  echo "The Dir was not exits";  Return false;  }  //去除URL连接上面可能的引号  $url = preg_replace( '/(?:^[\'"]+|[\'"\/]+$)/', '', $url );  if (!extension_loaded('sockets')) return false;  //获取url各相关信息  preg_match( '/http:\/\/([^\/\:]+(\:\d{1,5})?)(.*)/i', $url, $matches );  if (!$matches) return false;  $sock = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );  if ( !@socket_connect( $sock, $matches[1], $matches[2] ? substr($matches[2], 1 ) : 80 ) ) {  return false;  }  //图片的相对地址  $msg = 'GET ' . $matches[3] . " HTTP/1.1\r\n";  //主机名称  $msg .= 'Host: ' . $matches[1] . "\r\n";  $msg .= 'Connection: Close' . "\r\n\r\n";  socket_write( $sock, $msg );  $bin = '';  while ( $tmp = socket_read( $sock, 10 ) ) {  $bin .= $tmp;  $tmp = '';  }  $bin = explode("\r\n\r\n", $bin);  $img = $bin[1];  $h = fopen( $filename, 'wb' );  $res = fwrite( $h, $img ) === false ? false : true;  @socket_close( $sock );  Return $res;  }  。

方式2:curl  。

复制代码代码如下

<?php  $url = "http://jb51.net/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg";  $filename = 'curl.gif';  //http://jb51.net  getImg($url, $filename);  /*  *@通过curl方式获取制定的图片到本地  *@ 完整的图片地址  *@ 要存储的文件名  */  function getImg($url = "", $filename = "") {  if(is_dir(basename($filename))) {  echo "The Dir was not exits";  Return false;  }  //去除URL连接上面可能的引号  $url = preg_replace( '/(?:^[\'"]+|[\'"\/]+$)/', '', $url );  $hander = curl_init();  $fp = fopen($filename,'wb');  curl_setopt($hander,CURLOPT_URL,$url);  curl_setopt($hander,CURLOPT_FILE,$fp);  curl_setopt($hander,CURLOPT_HEADER,0);  curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);  //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来  curl_setopt($hander,CURLOPT_TIMEOUT,60);  /*$options = array(  CURLOPT_URL=> 'http://jb51.net/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg',  CURLOPT_FILE => $fp,  CURLOPT_HEADER => 0,  CURLOPT_FOLLOWLOCATION => 1,  CURLOPT_TIMEOUT => 60  );  curl_setopt_array($hander, $options);  */  curl_exec($hander);  curl_close($hander);  fclose($fp);  Return true;  }  ?>  。

最后此篇关于php获取远程图片的两种 CURL方式和sockets方式获取远程图片的文章就讲到这里了,如果你想了解更多关于php获取远程图片的两种 CURL方式和sockets方式获取远程图片的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com