1、对于file_get_content相信对于这个函数大家都是比较了解的,但是,今天合肥达内PHP培训给大家说一下它的一个问题,它容易导致服务器挂掉,file_get_content;抓取网页的内容,但是当该网站出现问题无法访问时,我们的函数依然会运行,导致服务器挂掉。想要防止这个问题出现,在php.ini中设置请求时间限制max_execution_time()也是无效的,要怎么解决这个问题呢,小编也是在网上找到解决的办法的。下面合肥PHP编程培训就给大家介绍一下吧。
那就是使用一个函数stream_context_create()来设置句柄文件的环境,此函数应用比较广泛,涉及资源类型的基本都可以使用的。私下可以详细学习一下这个函数。
//设置请求数据的参数,有很多参数可以设置根据自己需要设定即可
$opts = array(
'http'=>array(
'method'=>"GET", //请求方式换成post可以让file_get_content实现post形式
'timeout'=>"300" //限制请求时间
)
);
//调用函数
$context = stream_context_create($opts);
//将参数传入file_get_content中。
如果调取地址出问题时,请求超过设定的值就会自动停止该请求,不会导致服务器挂掉的。
还有一种方法就是改php.ini中的default_socket_timeout值,该值是读取url超时时间设置,和上面的效果是一样的。或者在PHP文件中增加代码ini_set('default_socket_timeout', 5) ;
2、官方说明file_put_contents()函数把一个字符串写入文件中。与依次调用fopen(),fwrite()以及fclose()功能一样。但是该函数效率要高一些的。这个函数还是相应简单一些的。它的返回是写入文件的字节数。同样该函数的参数中也是可以设置句柄文件的环境。
//小事例
//举例通过file_put_content()可以将需要的文件写入到ftp上的指定文件中
//连接到ftp
$content = "this is just a
test.";
//设置参数
$options = array('ftp' =>
array('overwrite' => true));
//调用函数
$stream = stream_context_create($options);
//允许重写已存在的远程服务器上的文件。仅适用于写入模式
file_put_contents($hostname, $content, 0,
$stream);
作者:吾林爱 分享
了解更多PHP相关知识,欢迎在线留言安徽PHP培训官网客服报名本月PHP课程免费训练营。
*免责声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。