PHP函数file_get_content及file_put_content介绍

2022-10-11 21:51:36 170 0
魁首哥

1、对于file_get_content相信对于这个函数大家都是比较了解的,但是,今天小编给大家说一下它的一个问题,它容易导致服务器挂掉,file_get_content(“”);抓取网页的内容,但是当该网站出现问题无法访问时,我们的函数依然会运行,导致服务器挂掉。想要防止这个问题出现,在php. ini 中设置请求时间限制max_execution_time()也是无效的,要怎么解决这个问题呢,小编也是在网上找到解决的办法的。下面就给大家介绍一下吧。

那就是使用一个函数 stream_context_create()来设置 句柄 文件的环境,此函数应用比较广泛,涉及资源类型的基本都可以使用的。私下可以详细学习一下这个函数。

//设置请求数据的参数,有很多参数可以设置根据自己需要设定即可

$opts = array(

‘http’=>array(

‘method’=>”GET”, //请求方式 换成post可以让file_get_content实现post形式

‘timeout’=>”300″ //限制请求时间

)

);

//调用函数

$context = stream_context_create($opts);

//将参数传入file_get_content中。

$str =file_get_contents(‘ false, $context);

如果调取地址出问题时,请求超过设定的值就会自动停止该请求,不会导致服务器挂掉的。

还有一种方法就是改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

$hostname = ‘ftp://username:password@www.test.com/test.txt’;

$content = “this is just a test.”;

//设置参数

$options = array(‘ftp’ => array(‘overwrite’ => true));

//调用函数

$stream = stream_context_create($options);

//允许重写已存在的远程服务器上的文件。仅适用于写入模式

file_put_contents($hostname, $content, 0, $stream);

这个也是一个简单的小事例,不过目前使用较多的还是curl功能的,可以参考之前写的文章。有需求可以把它应用到自己的网站吧。欢迎评论关注哦。

作者:吾林爱分享

收藏
分享
海报
0 条评论
170
上一篇:后端开发:PHP代码优化小技巧让你瞬间提升逼格 下一篇:「php」PHP 预定义类 Mysqli 常用代码集合

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码