前言:
现在姐妹们对“phpwritetofile”可能比较重视,看官们都需要知道一些“phpwritetofile”的相关知识。那么小编在网络上网罗了一些对于“phpwritetofile””的相关文章,希望朋友们能喜欢,姐妹们快快来学习一下吧!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 = '';
$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功能的,可以参考之前写的文章。有需求可以把它应用到自己的网站吧。欢迎评论关注哦。
作者:吾林爱分享
标签: #phpwritetofile