1. <form id="hid2f"><legend id="hid2f"></legend></form><form id="hid2f"><legend id="hid2f"></legend></form>
              <sub id="hid2f"><big id="hid2f"><td id="hid2f"></td></big></sub>

                IT职业教育

                华中地区北大青鸟校区IT集训营

                027-87807717

                北大青鸟首页 > 热门IT技术教程 > 前端技术教程 > > php使用curl或fsockopen下载远程图片

                php使用curl或fsockopen下载远程图片

                时间:2012-12-25 09:41 来源:北大青鸟武汉宏鹏鲁广校区作者:北大青鸟鲁广校区
                导读:php如何下载远程图片?下面给大家两种方法,fsockopen方法和curl方法,后者使用时需要启用curl。

                1、fsockopen方法。

                以下为引用的内容:
                php
                $url = “http://www.example.net/xxx/xxx.jpg”;
                $t = parse_url($url);
                $host = $t['host'];
                $file = $t['path'];

                $fp = fsockopen($host,80, $errno, $errstr, 30);
                if($fp)
                {

                $header = “GET $file HTTP/1.1/r/n”;
                $header .= “Host: $host/r/n”;
                $header .= “User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1/r/n”;
                $header .= “Referer: http://$host/r/n”;
                $header .= “Connection: Close/r/n/r/n”;

                fwrite($fp, $header);

                $jpg = fopen($path . basename($file), “wb”);
                while (!feof($fp))
                {
                $s = fgets($fp,128);
                fwrite($jpg,$s);
                }
                fclose($jpg);

                fclose($fp);
                }
                ?>

                2.curl方法。需要php中启用curl。

                以下为引用的内容:
                php
                set_time_limit(0);
                ini_set(’display_errors’,true);//Just in case we get some errors, let us know….

                $host = “www.example.net”;
                $urls=array(
                “http://$host/xxx/xxx.jpg”,
                “http://$host/xxx/yyy.jpg”
                );

                $save_to=’./’;

                $mh = curl_multi_init();

                foreach ($urls as $i => $url)
                {
                $g=$save_to.basename($url);
                if(!is_file($g))
                {
                $conn[$i]=curl_init($url);

                $fp[$i]=fopen ($g, “wb”);

                curl_set($conn[$i], CURLOPT_USERAGENT, “Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1″);
                curl_set($conn[$i], CURLOPT_REFERER, “http://$host”);
                curl_set($conn[$i], CURLOPT_FILE, $fp[$i]);
                curl_set($conn[$i], CURLOPT_HEADER ,0);
                curl_set($conn[$i], CURLOPT_CONNECTTIMEOUT,600);
                curl_set($conn[$i], CURLOPT_FOLLOWLOCATION, 1);
                //curl_set($conn[$i], CURLOPT_RETURNTRANSFER, 0);
                //curl_set($conn[$i], CURLOPT_VERBOSE, 0);

                curl_multi_add_handle ($mh,$conn[$i]);
                }
                }

                do {
                $n=curl_multi_exec($mh,$active);
                }
                while ($active); php程序员站

                foreach ($urls as $i => $url)
                {
                curl_multi_remove_handle($mh,$conn[$i]);
                curl_close($conn[$i]);
                fclose ($fp[$i]);
                }

                curl_multi_close($mh);
                ?>

                告诉我们,你现在想了解什么?

                精彩专题——96%的同学看到这里都会点击下面的专题

                Copyright (c) 2006-2020 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.

                赛马会