php错误提示failed to open stream: HTTP request failed!的完美解决方法

google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On

这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。

但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器就可以了

user_agent=”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”

在工作中遇到这个问题,后完美解决,故分享给大家。
我批量抓取chemblink的结构式发现循环后有部分图片无法显示,而远程文件是存在的。
抓取远程文件的时候出现类似Warning: readfile(http://www.jb51.net/logo.gif) [function.readfile]: failed to open stream: HTTP request failed! 这样的警告信息,我使用的是
复制代码 代码如下:

ob_start();
readfile("logo.gif");
$img = ob_get_contents();
ob_end_clean();

这样在运行中会时不时的出现上述错误,我也换过file_get_contents等其他函数都没用用,在网上查阅后发现用CURL方法抓取不会出错

现在比较流行使用curl
复制代码 代码如下:

<?php
$url = "http://s.jb51.net";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
$dxycontent = curl_exec($ch);
echo $dxycontent;
?>

时间: 2024-12-03 00:39:53

php错误提示failed to open stream: HTTP request failed!的完美解决方法的相关文章

php错误提示failed to open stream: HTTP request failed!的完美解决方法_php技巧

google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On 这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可.)重启服务器. 但是有些还是会有这个警告信息,想用完美的解决

failed to open stream: HTTP request failed

fopen他以采集远程服务器的内容保存到本地同时也可以打开本地的文件,是一个非常不错的函数,下面我们来看看关于在使用fopen函数时出现failed to open stream: HTTP request failed问题解决方法. <?php教程 $handle = fopen ("http://www.111cn.net/c5-03/", "rb"); $contents = ""; while (!feof($handle)) {

java-eclipse中,定义类Employee时,错误提示是“已定义类型Employee”,该如何进行解决?

问题描述 eclipse中,定义类Employee时,错误提示是"已定义类型Employee",该如何进行解决? public class ParamTest { public static void main(String[] args) { System.out.println("tripleValue testing"); double percent=10; System.out.println("Before:percent="+per

Win7提示诊断策略服务未运行无法诊断检查网络解决方法

  Win7提示诊断策略服务未运行无法诊断检查网络解决方法.在Win7系统中,通常遇到网络故障时,我们都会使用网络诊断来检查问题所在.但有时使用网络诊断时会出现"诊断策略服务未运行"的提示,从而导致网络的诊断失败.那么这要怎么处理呢?下面,请随小编来看看. 解决方法如下: 1.开始→运行→输入:services.msc 点击确定(或按回车键)打开服务. 2.在服务中依次找到:Diagnostic Policy Service 服务如未开启,右键启动. 3.如果启动不了(此时菜单是灰色的

php运行提示:Fatal error Allowed memory size内存不足的解决方法_php技巧

本文实例讲述了php运行提示:Fatal error Allowed memory size内存不足的解决方法.分享给大家供大家参考.具体方法如下: 有些朋友新配置的环境或自己新写的程序运行时会碰到fatal error: Allowed memory size of 134217728 bytes exhausted错误,这种问题一个是程序写得不好导致的,另一个是环境配置不好也会出现,像php5.1.27+apache2.2.3好像在windows2003中就会出现bug不管你怎么修复都无法解

电脑开机后提示尝试运行nvcpl.dll,NvSartup时发生意外的解决方法

  电脑开机后提示尝试运行nvcpl.dll,NvSartup时发生意外的解决方法 1.Nvcpl.dll是NVIDIA显卡驱动的一个文件,出现以上提示可能是在优化或升级驱动的过程中破坏了该文件,非专业人员可以忽略这个文件; 2.可运行config,将Nvcpl启动项移除; 3.运行service.msc,找到nvidia display driver service,并禁用该服务项; 4.如果想要继续使用NVIDIA控制面板,可以借助驱动精灵等软件,卸载原有驱动后再重新下载安装. 如果发现电脑

Win7旗舰版系统开机提示“网络上有重名”的故障原因及解决方法

  win7旗舰版系统后开机右下角弹出"网络上有重名",具体现象如下所示: 故障原因: 1.网络上有重名多是安装系统时使用无人值守的安装模式,更多是盗版系统的大批量ghost还原所致. 2.当前没有多少系统是使用正版的系统.甚至有不少公司和公务机构虽然买了正版系统,可是由于安装繁琐,并且更新补丁太浪费时间,所以多数采用安装一个样机,更新补丁.安装常用软件后,使用ghost备份,然后在其他同型号电脑上使用ghost还原. 3.有的干脆使用盗版系统.也有的盗版系统已经采用当前安装时间作为计

Win7系统运行cmd命令提示“Windows找不到文件”的故障原因及解决方法

  故障原因分析: 一般发生这样的情况,是系统内的文件被删除所导致的. 解决方法: 1.先准备一个U盘,将U盘插入相同版本系统可正常运行cmd命令的计算机中; 2.在该计算机中打开"计算机",依次打开"C:WindowsSystem32",在该文件夹中找到"cmd.exe",并将其复制起来,通过U盘粘贴到无法运行cmd系统中"C:WindowsSystem32"目录下即可. 3.复制好之后,再次运行CMD命令即可正常打开. 以

yiic命令时提示“php.exe”不是内部或外部命令的解决方法_php实例

本文实例讲述了yiic命令时提示"php.exe"不是内部或外部命令的解决方法,分享给大家供大家参考.具体方法如下: 在CMD中运行 yiic webapp work 如果报"php.exe"不是内部命令,是这样的:原因是Yii自带的yiic.bat找不到php.exe. 解决方法: 因为没有加入环境变量,所以无法直接执行php.exe. 右击"我的电脑->属性->高级->环境变量->系统变量->PATH->编辑&quo