您的位置:晶晶的博客>PHP>php远程文件调用、获取出现错误警告的问题总结与解决方案

php远程文件调用、获取出现错误警告的问题总结与解决方案

今天做了个路由器映射,将本地开发的网站共享到互联网去,发现file_get_contents()函数获取远程数据(非本地文件,诸如url之类的)的时候会出现远程获取文件的错误;php抛出的是个警告级错误,不会终止程序运行,但却会造出数据的无法获取;错误信息如下:

Warning: file_get_contents(https://****) [function.file-get-contents]: failed to open stream: No error in ****dd.class.php on line *

找了半天的原因,均告无效终结;持续郁闷中.......只好祭出杀手级老师google,最终还是被我给解决了。找了许多文档,顺便把相关的所有问题给总结一下~

第一种情况:allow_url_fopen未开启

是否开启php中某些函数的远程访问权限的php模块扩展的问题(我用的win平台,所以在php.ini中修改,linux平台在php相关配置文件中该,应该是php.ini文件)

----官方文档中的文字原文是:“如果“fopen wrappers”已经被激活”*****

直接说操作方式:

找到在php.ini配置文件使用文本编辑器打开,搜索“fopen wrappers" ;如下图:

去掉allow_url_fopen = On前的分号,并将原先的off改为on,即开启了远程文件包含、访问远程文件,以及读取、写入、复制拷贝等功能的远程使用。

更明白一点的意思就是,在使用include、require以及require_once等包含的时候,包含的文件可以是诸如include ‘http://****’之类的形式,如果未开启,则会有个警告级别的错误提示;

到此PHP的扩展模块已经被打开,但是别高兴的太早,这个问题没解决,就是刚开始的代码错误提示信息的问题;刚开始我打开这个模块并重启apache后发现问题还是存在,郁闷的不得了啊。在php官方网站中找到了这么一句话“For https for windows enable this extension: extension=php_openssl.dll ”;明白了吧,我的那个警告级别的url链接是https形式的,也就是说需要进行加密获取文件的话还得开启php_openssl.dll模块;这个就是一个ssl链接的协议模块,到此问题得以解决~(在linux下,openssl默认是开启,所以在win平台下远程获取文件时如果确认allow_url_fopen是开启的话就别费心思去问为何开启了url访问模式还无法获取文件呢?)

第二种情况:服务器DNS设置出错,在以上php本身配置没有问题的前提下通过IP地址能够获取到远程文件流,而通过域名则获取不到。

这种情况就不再本次php问题的讨论范畴了,这个只是一个网络设置的问题,php获取远程文件的前提是网络链接顺畅,而dns是域名转换为ip的核心,所以只需修改服务器dns设置即可啊~~~

至此,问题得以解决,以下附上php在win平台下的扩展模块以及功能,您可以查看php.ini文件。

扩展库 说明 注解

php_bz2.dll bzip2 压缩函数库 无

php_calendar.dll 历法转换函数库 自 PHP 4.0.3 起内置

php_cpdf.dll ClibPDF 函数库无

php_crack.dll 密码破解函数库 无

php_ctype.dll ctype 家族函数库 自 PHP 4.3.0 起内置

php_curl.dll CURL,客户端 URL 库函数库需要:libeay32.dll,ssleay32.dll(已附带)

php_cybercash.dll 网络现金支付函数库 PHP <= 4.2.0 php_db.dll DBM 函数库 已废弃。用 DBA 替代之(php_dba.dll)

php_dba.dll DBA:数据库(dbm 风格)抽象层函数库 无

php_dbase.dll dBase 函数库 无

php_dbx.dll dbx 函数库

php_domxml.dll DOM XML 函数库 PHP <= 4.2.0 需要:

libxml2.dll(已附带),PHP >= 4.3.0 需要:iconv.dll(已附带)

php_dotnet.dll .NET 函数库 PHP <= 4.1.1

php_exif.dll EXIF 函数库 需要 php_mbstring.dll。并且在 php.ini 中,php_exif.dll 必须在 php_mbstring.dll之后加载。

php_fbsql.dll FrontBase 函数库 PHP <= 4.2.0 php_fdf.dll FDF:表单数据格式化函数库需要:fdftk.dll(已附带)

php_filepro.dll filePro 函数库只读访问 php_ftp.dll FTP 函数库 自 PHP 4.0.3 起内置

php_gd.dll GD 库图像函数库 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数,用 php_gd2.dll 替代。

php_gd2.dll GD 库图像函数库 GD2 php_gettext.dll Gettext 函数库 PHP <= 4.2.0 需要 gnu_gettext.dll(已附带),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附带)。

php_hyperwave.dll HyperWave 函数库 无

php_iconv.dll ICONV 字符集转换需要:iconv-1.3.dll(已附带),PHP >=4.2.1 需要 iconv.dll php_ifx.dll Informix 函数库需要:Informix 库

php_iisfunc.dll IIS 管理函数库无 php_imap.dll IMAP,POP3 和 NNTP 函数库 无 php_ingres.dll Ingres II 函数库需要:Ingres II 库

php_interbase.dll InterBase functions 需要:gds32.dll(已附带)

php_java.dll Java 函数库 PHP <= 4.0.6 需要:jvm.dll(已附带)

php_ldap.dll LDAP 函数库 PHP <= 4.2.0 需要 libsasl.dll(已附带),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附带)

php_mbstring.dll 多字节字符串函数库无

php_mcrypt.dll Mcrypt 加密函数库需要:libmcrypt.dll php_mhash.dll Mhash 函数库 PHP >= 4.3.0 需要:libmhash.dll(已附带)

php_mime_magic.dll Mimetype 函数库需要:magic.mime(已附带)

php_ming.dll Ming 函数库(Flash)无 php_msql.dll mSQL 函数库需要:msql.dll(已附带)

php_mssql.dll MSSQL 函数库需要:ntwdblib.dll(已附带)

php_mysql.dll MySQL 函数库 PHP >= 5.0.0 需要 libmysql.dll(已附带)

php_mysqli.dll MySQLi 函数库 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附带)

php_oci8.dll Oracle 8 函数库需要:Oracle 8.1+ 客户端库

php_openssl.dll OpenSSL 函数库需要:libeay32.dll(已附带)

php_oracle.dll Oracle 函数库需要:Oracle 7 客户端库 php_overload.dll 对象重载函数库 自 PHP 4.3.0 起内置

php_pdf.dll PDF 函数库 无

php_pgsql.dll PostgreSQL 函数库 无

php_printer.dll 打印机函数库 无

php_shmop.dll 共享内存函数库 无

php_snmp.dll SNMP 函数库 仅用于 Windows NT!

php_soap.dll SOAP 函数库 PHP >= 5.0.0 php_sockets.dll Socket 函数库 无

php_sybase_ct.dll Sybase 函数库需要:Sybase 客户端库

php_tidy.dll Tidy 函数库 PHP >= 5.0.0

php_tokenizer.dll Tokenizer 函数库自 PHP 4.3.0 起内置

php_w32api.dll W32api 函数库无

php_xmlrpc.dll XML-RPC 函数库 PHP >= 4.2.1 需要 iconv.dll(已附带)

php_xslt.dll XSLT 函数库 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附带)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附带)。

php_yaz.dll YAZ 函数库 需要:yaz.dll(已附带)

php_zip.dll Zip 文件函数库 只读访问 php_zlib.dll ZLib 压缩函数库 自 PHP 4.3.0 起内置

 ---

晶晶在线站长晶晶原创技术文章,转载请注明来源以及该文章链接地址~!

转载请注明本文标题和链接:《php远程文件调用、获取出现错误警告的问题总结与解决方案

相关推荐

网友评论1

路人甲 表情
Ctrl+Enter快速提交
  1. #1

    谢谢分享,这个解决方案不错

    P卡申请 3年前 (2014-04-29) 回复