这个函数也是项目中写的,提取出来,恐以后用到,还比较方便
/** * file_get_contents方式获取远程文件 * @param $url 可以是带参数的url * @param $timeout 设置超时 * @param $params 参数字符串,如a=2&b=3,通常用http_build_query生成 * @param $method 'GET','POST','' 为空等表示不对参数处理 * @param $times * @return string|boolean */ function get_remote_file($url = '', $timeout = 6, $params = '', $method = 'GET', $times = 3){ //提交方式 $method = strtoupper($method); //基本选项 $opts['http'] = array( 'method'=>$method, 'timeout'=>$timeout,//设置超时时间(秒) ); //判断参数提交方式 if(!empty($params)){ if('POST' == $method){ $opts['http']['content'] = $params; }elseif('GET' == $method){ $url .= ((false === strpos($url, '?'))?'?':'&').$params; } } $context = stream_context_create($opts); $cnt = 0; $file = false; //尝试$times次获取远程文件 while($cnt < $times && ($file = file_get_contents($url, false, $context)) === false)$cnt++; return $file; }