在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
php获取远程图片的两种:CURL方式和sockets方式获取远程图片 方式1:sockets
$a = "http://yi1.com.cn/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://yi1.com.cn/content/uploadfile/201106/thum-f3ccdd27d2000e3f9255a7e3e2c4880020110622095243.jpg"; $filename = 'curl.gif'; //http://yi1.com.cn getImg($url, $filename);
原文:http://yi1.com.cn/posts/473 |
2022-08-18
2022-08-17
2022-11-06
2022-08-17
2022-07-30
请发表评论