PHP使用file_put_contents写入文件file_get_contents采集内容

本文实例讲述了PHP使用内置函数file_put_contents写入文件及追加内容的方法。

以追加形式写入内容
当设置 flags 参数值为 FILE_APPEND 时,表示在已有文件内容后面追加内容的方式写入新数据:
复制代码 代码如下:
<?php
file_put_contents("test.txt", "This is another something.", FILE_APPEND);
?>
file_put_contents() 的行为实际上等于依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
FILE_APPEND:在文件末尾以追加的方式写入数据
参数说明:
参数
说明
filename 要写入数据的文件名 
data 要写入的数据。类型可以是 string,array(但不能为多维数组),或者是 stream 资源 
flags 可选,规定如何打开/写入文件。可能的值: 1.FILE_USE_INCLUDE_PATH:检查 filename 副本的内置路径
2.FILE_APPEND:在文件末尾以追加的方式写入数据
3.LOCK_EX:对文件上锁


context 可选,Context是一组选项,可以通过它修改文本属性
PHP 内置函数 file_put_contents 用于写入文件:
file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下:
复制代码 代码如下:
file_put_contents(filepath,data)


如果文件不存在,file_put_contents 函数会自动创建文件;如果文件已存在,原有文件被重写。
你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件。
下面是一个使用 file_put_contents 函数的 PHP 代码示例:


<html>
<body>
<?php
$path ="C:\\blabla\\filesys\one.txt";
$content = "one for all";
file_put_contents($path,$content);
if (file_exists($path))
 {echo "ok";}
else
 {echo "ng";}
?>
</body>
</html>
该 PHP 代码示例会创建一个路径为 C:\blabla\filesys\one.txt 的文件,该文件的内容是 one for all 。
PHP 内置函数 file_put_contents 用于追加内容:
如果你想在一个已有文件上追加内容,你也可以使用file_put_contents 函数,只需要加一个参数即可。
复制代码 代码如下:
file_put_contents(filepath,data,flags)

https://www.chumoshu.com 
当 flags 的值为 FILE_APPEND 时,表示在已有文件上追加内容。即:第三个参数flags实现将内容追加到文件的后面,如果没有这个参数会直接覆盖以前的数据。
比如我们要在上面示例的C:\blabla\filesys\one.txt 文件上追加内容,我们可以这样写:


<html>
<body>
<?php
$path ="C:\\blabla\\filesys\\one.txt";
$content = " all for one";
file_put_contents($path,$content,FILE_APPEND);
if (file_exists($path))
 {echo "ok";}
else
 {echo "ng";}
?>
</body>
</html>
执行该 PHP 文件之后,我们再看 C:\blabla\filesys\one.txt 文件,发现文件内容增加了,变成了:
one for all all for one

file_put_contents 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。

PHP中的file_get_contents函数应用非常广泛,我们可以利用file_get_contents获取远程网址中的网页内容。例如有的域名查询接口,就是通过这种方式获取查询结果的。它的原理是先从本网站里发送一条GET请求到远程服务器中的某个页面,再将该页面的结果返回到本网站里并通过程序接收返回的内容。采用这种技术我应用非常多,例如天气查询、快递查询等等,比比皆是。且看下列代码。

 

$Get_Str = file_get_contents("https://www.3669.com.cn");

if($Get_Str == false) //如果获取不成功,则返回false

{

  echo("获取不成功");

}

else

{

  $myarr = explode(",",$Get_Str);

  //后续处理……

}

 

  这要求提前预知远程网址所返回内容的格式,然后才能对接收到的内容进行格式化处理。例如上面的代码中,我们预知远程代码中的返回内容格式均以,号进行分隔,然后通过对字符串进行分割处理,得出各项数据再进行后续处理。

 

  假设要实现下列功能:

  我们希望从A站中获取B站中的学生成绩数据,那就要先在B站中写一个数据库读取的程序,比如根据学号获取学生姓名及各科的成绩,该页地址为https://www.7428.com.cn/get.php,该页返回数据格式为:学号,姓名,语文成绩,数学成绩。OK,再在B站中获取A站中的数据,获取方式为:

$Get_Str = file_get_contents("https://www.7428.com.cn/get.php?xuehao=1") //表示从B站中获取学号为1的学生信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值