<p><strong>第一个方法用file_get_contents($url):</strong></p><p><img src="/up_pic/201906/241026088374.png" title="241026088374.png" alt="1.png"/></p><p>然后1.gif是你要保存的相对路径,你也可以写成绝对路径。</p><p><strong>第二个方法用自己写的原生代码:</strong></p><p><img src="/up_pic/201906/241026152844.jpeg" title="241026152844.jpeg" alt="2.jpeg"/></p><p>解释一下代码吧:</p><p>ob_start(); 是打开输出缓冲</p><p>readfile($url);读入一个文件并写入输出缓冲</p><p>ob_get_contents();返回输出缓冲的内容</p><p>ob_end_clean();清除输出缓冲</p><p>下面的fopen、fwrite、fclose就大家都懂啦。</p><p><strong>接下来要了解到是fsockopen()函数:</strong></p><p>fsockopen — 打开一个网络连接或者一个Unix套接字连接。</p><p>resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )</p><p><img src="/up_pic/201906/241026271888.jpeg" title="241026271888.jpeg" alt="3.jpeg"/></p><p>例子</p><p>hostname是url,port是端口,errno一个存放错误编号的变量,errstr是一个存放错误信息字符串的变量和超时等待时间。</p><p>组成url的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query),例:http://www.baidu.com/img/bd_logo.png</p><p><strong>常见的HTTP状态码</strong></p><table><thead><tr class="firstRow"><th><p>代码</p></th><th><p>含义</p></th></tr></thead><tbody><tr><td><p>200</p></td><td><p>OK</p></td></tr><tr><td><p>204</p></td><td><p>NO Content</p></td></tr><tr><td><p>400</p></td><td><p>Bad Request</p></td></tr><tr><td><p>401</p></td><td><p>Unauthorized</p></td></tr><tr><td><p>403</p></td><td><p>Forbidden</p></td></tr><tr><td><p>404</p></td><td><p>Not Found</p></td></tr><tr><td><p>408</p></td><td><p>Time out</p></td></tr><tr><td><p>5**</p></td><td><p>Server error</p></td></tr></tbody></table>