file_get_contents不能获取带端口的网址
先们来了解file_get_contents() 函数,官方介绍说它是把整个文件读入一个字符串中。
例子
<?php
echo file_get_contents("test.txt");
?>
输出:
This is a test file with test text.
同样此函数还可以用于获取远程服务器上的内容
file_get_contents('http://www.111cn.net');
这样也是没有问题,但是如果我带了端口了就有问题了
例如:
file_get_contents('http://localhost:12345');
没有任何获取。
解决方法是 :关闭selinux
1 永久方法 – 需要重启服务器
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
2 临时方法 – 设置系统参数
使用命令setenforce 0
附:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
php的allow_url_fopen选项是关闭了
原因是我们php.ini中把php的allow_url_fopen选项是关闭了,我们只要把它打开即可。
如果你没有权限打开allow_url_fopen的话我们可使用curl函数的来替换,也是很方法的。
本文章晋级人大家介绍phpword中文字符乱码解决办法,希望此文章对各位所有帮助哦。最近领导要求用php生成word,网上找了很多类啊,函数啊。最终相中phpword。无奈不是国人开发,对中文支持很不友好。经过研究,终于解决了中文乱码,分享出来。
1、用模板word生成word中文乱码解决方案:
打开phpword/Template.php文件,找到$replace = utf8_encode($replace);将其改为$replace =iconv('gbk', 'utf-8', $replace); 即可。
2、直接生成word文档,调用addText对象时中文乱码解决方案:
打开phpword/Section.php文件,找到$givenText = utf8_encode($text);将其改为$givenText = iconv('gbk', 'utf-8', $text);即可。
3、貌似其他方法也类似第解决。
4、注意php文件采用gbk哦。反正我的显示中文了。在网上找了好久,研究了半天才搞定。
在php中file_get_contents函数可直接采集远程服务器内容,然后保存到一个变量中了,介理一般都会把file_get_contents、fsockopen等一些IO操作的函数禁用掉,因为它们怕被 DDOS那么一般情况下,我们改不了服务器的 inc.php,只能自己写一套IO来代替上面的PHP函数了。
代码如下 | 复制代码 |
|
我们可以用下面的代码代替
代码如下 | 复制代码 |
//禁用file_get_contents的解决办法 |
curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等,它不会被服务器禁用,所以我们可以用来模拟file_get_contents一样打开一条URL。
利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数
代码如下 | 复制代码 |
< ?php function vita_get_url_content($url) { if(function_exists('file_get_contents')) { $file_contents = file_get_contents($url); } else { $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); } return $file_contents; } ?> |
以下是Discuz的一个报错。
Fatal error: require_once() [function.require]: Failed opening required './source/class/class_core.php' (include_path='.;c:php5pear') in D:webBBSindex.php on line 14
解决办法
修改php.ini配置文件。
代码如下 | 复制代码 |
; Windows: "path1;path2" |
如果你使用的是iis可能就权限配置问题了,我们可尝试按下面方法解决
为了行文方便,我先说下我的目录结构
1、 D:FreeHost为网站根目录,在它的下面放置DZ论坛、wordpress博客和织梦门户网站;
2、 以dz论坛举例,D:FreeHostwebdz2013_JD3QC6,这是dz程序的根目录,里面放置的是dz程序。
A、 我的网站刚开始如这样设置的,administrators和system对网站根目录FreeHos具有完全的控制权限。
B、 webdz2013_JD3QC6程序根目录的设置权限是:administrators 完全,system完全,iis来宾账户IUSR_dzusr 读取和运行、列出文件目录和读取,network service 完全控制权限且不是继承父目录的。
结果论坛的最后一步出现上面的错误。
解决方法如下
A、 对网站根目录FreeHos“只有该文件夹”添加iis来宾账户IUSR_dzusr的读权限
在php中urlencode()函数函数是把中文转换成字符串编码,这样就不会导致中文url在浏览器中打开乱码或出错的问题了,下面我来给大家介绍在使用 urlencode()编码是一些具体细节。urlencode
(PHP 4, PHP 5)
urlencode — 编码 URL 字符串
Report a bug 说明
string urlencode ( string $str )
此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
Report a bug 参数
str
要编码的字符串。
Report a bug 返回值
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
么是URLEncode:
本工具分别实现两种方式的Encode与Decode。
中文 -> GB2312的Encode -> %D6%D0%CE%C4
中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87
Html中的URLEncode:
编码为GB2312的html文件中,
/中文.rar -> 浏览器自动转换为 -> /%D6%D0%CE%C4.rar
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.
编码为UTF-8的html文件中,
/中文.rar -> 浏览器自动转换为 -> /%E4%B8%AD%E6%96%87.rar
PHP中的URLEncode:
代码如下 | 复制代码 |
//GB2312的Encode |
除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
urlencode和rawurlencode的区别:
urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)
如果要使用UTF-8的Encode,有两种方法:
一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。
二、使用mb_convert_encoding函数。
代码如下 | 复制代码 |
$url = ‘/中文.rar’; |
实例:
代码如下 | 复制代码 |
function parseurl($url=”") |
JavaScript中的URLEncode:
代码如下 | 复制代码 |
%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20 |
encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。
代码如下 | 复制代码 |
/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar |
Note:
注意:小心与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并使用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:» http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2。
PHP 通过 arg_separator.ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 & 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &,而仅使用 htmlentities() 或 htmlspecialchars() 对你的 URL 进行编码。
相关文章
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25php file_get_contents 设置代理抓取页面示例
file_get_contents函数在php中可以直接打开本地文件也可以直接抓取远程服务器文件,如果简单的采集我们可以使用file_get_contents直接来操作,如果有防采集我们可能需要...2016-11-25php报错file_get_contents(): php_network_getaddresses问题
本文章来为各位介绍一篇关于file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known...错误解决办法。 昨天,服务器的DN...2016-11-25- file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。今天说的这篇是讲超时的,确实在...2013-10-04
file_get_contents()获取https出现这个错误Unable to find the wrapper “https”
下面我们来看一篇关于file_get_contents()获取https出现这个错误Unable to find the wrapper “https”问题的解决办法. file_get_contents()获取https出现这个错...2016-11-25- 经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
- 在使用file_put_contents时会碰到并发性问题了,对于这个问题我们有多种解决方案了,其实锁是小编比较喜欢的解决办法了,当然也有其它办法,具体如下。 解决 办法一,fil...2016-11-25
php提示Warning: file_get_contents(): couldn’t resolve
在使用file_get_contents函数获取远程文件时提示Warning: file_get_contents(): couldn’t resolve错误了,这个我们可以看出是dns的问题,解决办法也简单。 今天在...2016-11-25- 一位站长译的一个国外的如何判断用户是否访问过某个网址文章,个人感觉写得非常不错,下面分享一下。 我们经常有这样的需求:想知道用户之前有没有访问过某个网址。有...2016-09-20
- 本文章来给各位同学介绍file_get_contents不能获取带端口的网址解决办法,有需要了解的同学可参考。 先们来了解file_get_contents() 函数,官方介绍说它是把整个...2016-11-25
php中file_get_contents和curl_get_contents介绍
php中file_get_contents和curl_get_contents介绍 有需要的朋友可参考一下。 分享一个实际在用的函数: file_get_contents() 函数是用于将文件的内容读入到一个字符...2016-11-25centos下file_put_contents()无法写入文件的原因及解决方法
下面小编就为大家带来一篇centos下file_put_contents()无法写入文件的原因及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-04-03- 中文网址对于许多的地方是不兼容的但只要转换在uft8好像又可以解决了,下面来看一篇安卓中Picasso加载中文网址失败的解决方法,具体如下 写这篇博客之前,也是先感叹一...2016-10-02
- <html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax...2016-11-25
php curl file_get_contents post方式获取数据
下面我们在这里来为各位介绍一篇关于php curl file_get_contents post方式获取数据例子,希望文章能够帮助到各位朋友. curl post,file_get_contents post,curl fi...2016-11-25- file_put_contents写入文件在我看到的phper中很少用到了,但小编以前做flash接受数据时就用到了file_put_contents函数了,下面我们来看看file_put_contents写入文件的优...2016-11-25
- php file_get_contents 函数 file_get_contents ( PHP 4中“ = 4.3.0 , PHP 5中) file_get_contents -读取整个文件转换成字符串 描述 字符串file...2016-11-25
- 这是一段很简单的程序利用了php的file_get_contents函数来采集百度的数据,然后通过simplexml_load_String把它数据解析出来,这样数据就保存到了一个数组,我们就可以方便...2016-11-25
file file_get_contents HTTP request failed
/* 我有一个问题,要求从php教程代码的url。我需要调用一个服务,使用从我的php代码的查询字符串。如果我的浏览器中键入一个网址,它工作还算可以,但如果我使用文件获取,内容...2016-11-25- 最近听说备案审核越来越严了,我也小担心了下,本来以为买域名的地方可以代备案的,不巧他们刚好不能访问备案网站(说是暂时的)。我按照备案的流程,以个人的名义备了案,结果令...2017-07-06