Php curl、fopen&;文件“U获取”内容随机抛出;“连接已重置”;浏览器中的错误
我试过3个,Php curl、fopen&;文件“U获取”内容随机抛出;“连接已重置”;浏览器中的错误,php,curl,fopen,file-get-contents,Php,Curl,Fopen,File Get Contents,我试过3个,文件获取内容,卷曲&fopen,但问题是我随机得到了“连接被重置”错误,我的意思是如果它对url A有效,但对url B无效 任何帮助都将不胜感激 代码如下: function readRemoteFile($url, $use = FOP) { $url = urldecode($url); switch ($use) { case FOP: $handle = fopen($url, 'r'); while (!feof($handle)
文件获取内容
,卷曲
&fopen
,但问题是我随机得到了“连接被重置”错误,我的意思是如果它对url A有效,但对url B无效
任何帮助都将不胜感激
代码如下:
function readRemoteFile($url, $use = FOP) {
$url = urldecode($url);
switch ($use) {
case FOP:
$handle = fopen($url, 'r');
while (!feof($handle)) {
$content.=fread($handle, 2048);
}
return $content;
break;
case FGC :
if (!$handle = file_get_contents($url)) {
return FALSE;
} else {
while ($chunk = fread($handle, 2048)) {
$content .= $chunk;
}
fclose($handle);
return $content;
}
break;
case CURL :
$ch = curl_init(urldecode($url));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
ob_start ();
$c = curl_exec($ch);
curl_close($ch);
ob_end_clean ();
return trim($c);
break;
}
}
关于这一点:
case FGC :
if (!$handle = file_get_contents($url)) {
return FALSE;
} else {
while ($chunk = fread($handle, 2048)) {
$content .= $chunk;
}
fclose($handle);
return $content;
}
这是错误的。应该是:
case FGC :
return file_get_contents($url);
我忘了提到的另一件事是,如果我在索引页上调用相同的函数,它会很好,在进行一些调试后,我发现在调用
$result=preg\u match\u all($pattern,$content,$feedurl)后,浏览器显示“连接被重置”错误
其中,$content
包含由readRemoteFile
函数返回的html。有人知道为什么会这样吗?您好,@jey keu preg_match_all不在您发布的源代码中,所以我不知道。好的,下面是我正在做的//从$url$content=readRemoteFile($url)读取页面内容(html)$pattern=“某种模式”$匹配=数组()$结果=预匹配所有($pattern,$content,$matches);如果($result){//I do stuff here}我在某个地方读到,如果$subject
(第二个参数)包含一个大字符串,则preg\u match\u all
将失败。现在请忽略preg\u match\u all
部分,因为我不再需要它,我实际上想做的是解析$content
中的html。对不起,根据您提供的信息,我无法诊断问题。试着用源代码的完整内容开始一个新问题。另外,看看您的日志文件——可能是php或您的Web服务器正在记录一些东西。