Home >Backend Development >PHP Tutorial >大虾!帮我看看这个娶图函数到底出错在哪~

大虾!帮我看看这个娶图函数到底出错在哪~

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-23 14:09:31853browse

function get_content_by_socket($url){ $url = eregi_replace('^http://', '', $url);$temp = explode('/', $url);$host = array_shift($temp);$url = ''.implode('/', $temp);$temp = explode(':', $host);$host = $temp[0];$port = isset($temp[1]) ? $temp[1] : 80;//echo $url;//echo $host;   $fp = fsockopen($host, 80) or die("Open ". $url ." failed");     $header = "GET /".$url ." HTTP/1.1\r\n";     $header .= "Accept: */*\r\n";     $header .= "Accept-Language: zh-cn\r\n";    $header .= "Accept-Encoding: gzip, deflate\r\n";    $header .= "If-Modified-Since: Tue, 06 Apr 2010 07:56:03 GMT; length=2235\r\n";     $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4)\r\n";     $header .= "Host: ". $host ."\r\n"; 	$header .= "Referer: http://video.baidu.com/v?word=11&ct=301989888&rn=20&pn=0&db=0&s=0&fbl=800\r\n"; 	//fputs($content, "Referer: $domainrn");//伪造部分     $header .= "Connection: Keep-Alive\r\n";     $header .= "Cookie: BAIDUID=5F96971273579588527A980F307E8B7A:FG=1\r\n\r\n";     //$header .= "Connection: Close\r\n\r\n";     fwrite($fp, $header);     while (!feof($fp)) {         $contents .= fgets($fp, 8192);     }     fclose($fp);     return $contents; } 



函数可以正常使用 但是取图的速度非常慢

而且当同时取三到四张时就一张也取不到


回复讨论(解决方案)

能运行就表示没有错了,运行慢可能与网络有关

就函数本身而言:
eregi_replace 已经列在废止系列中,应改用 preg_replace
php 提供有 parse_url 函数,用于分析 url。不再需要用字符串函数和数组函数自己处理
百度的图片有防盗链保护,你发送固定的 cookie 似乎是不对的

能运行就表示没有错了,运行慢可能与网络有关

就函数本身而言:
eregi_replace 已经列在废止系列中,应改用 preg_replace
php 提供有 parse_url 函数,用于分析 url。不再需要用字符串函数和数组函数自己处理
百度的图片有防盗链保护,你发送固定的 cookie 似乎是不对的

之前我可能关闭了这行
//$header .= "Connection: Close\r\n\r\n";  
然后我开启这行之后 速度快了很多

不过还是有问题 比如以下开启 四五张 所有的都是获取到的事147K的文件 是不是百度服务器限制 

你给几个要取的图片的url,我测试一下

你给几个要取的图片的url,我测试一下

函数没问题了

自己的一些小错误 造成的 谢谢版主~

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn