我玩的应用:

|
方式一:Curl方式[已验证通过]- <?php
- $url = "http://www.cxweb.com.cn/static/image/common/logo.png";
- $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);
- curl_exec($hander);
- curl_close($hander);
- fclose($fp);
- Return true;
- }
- ?>
复制代码 二、方式二Soket- <?php
- $a = "http://www.cxweb.com.cn/static/image/common/logo.png";
- $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 ( ( $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;
- }
- ?>
复制代码 from:http://hi.baidu.com/yhyynh/blog/ ... 84fbb68326acb6.html |
|