PHP file_get_contents与file_put_contents

                                                    PHP file_get_contents与file_put_contents

1、file_get_contents — 将整个文件读入一个字符串
    1)、语法:string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
        Note:如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
    2)、参数说明:
            参数                        说明
            filename            要读取的文件的名称。
            use_include_path    可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
            context                可选。规定文件句柄的环境。(若使用 null,则忽略)
            offset                 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
            maxlen                 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。
    3)、代码
        (1)、输出url内容
            $home_content = file_get_contents('http://weather.123.duba.net/static/weather_info/101121301.html');
            echo $home_content;
        (2)、输出文件内容
            $file = file_get_contents(APP_PATH.'/data/css1.txt', true);
            $file1 = file_get_contents(APP_PATH.'/data/css1.txt', FILE_USE_INCLUDE_PATH);
        (3)、截取文件内容
            $file = file_get_contents(APP_PATH.'/data/css1.txt', NULL, NULL, 10, 14);
            注意:文件中有中文时会出现乱码
        (4)、模拟POST请求数据
            //'http://localhost/test/wps';
            public function wpsAction(){
                $url = 'http://localhost/test/abcd';
                $postData = [
                        'username'=>'你好',
                        'password'=>'123456'
                ];
                $context = stream_context_create(
                                ['http' => [
                                                'method'  => 'POST',
                                                'header'  => "Content-type: application/x-www-form-urlencoded",
                                                'content' => http_build_query($postData),
                                                'timeout' => 20
                                            ]
                                ]
                        );
                $data = file_get_contents($url, false, $context);
                var_export($data);die;
            }
            
            public function abcdAction(){
                $username = $_POST['username'];
                $pwd = $_POST['password'];
                echo $username.' '.$pwd;
                die;
            }
            
            打印:
            你好 123456
            
2、file_put_contents — 将一个字符串写入文件
    1)、语法:int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
              和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
    2)、参数说明:
        参数            说明
        filename    要被写入数据的文件名。(路径+文件名)
        data        要写入的数据。类型可以是 string,array 或者是 stream 资源
                        如果 data 指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。
                        参数 data 可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join('', $array))。
        flags        flags 的值可以是 以下 flag 使用 OR (|) 运算符进行的组合。
                            Flag                    描述
                        FILE_USE_INCLUDE_PATH     在 include 目录里搜索 filename。 更多信息可参见 include_path。
                        FILE_APPEND             如果文件 filename 已经存在,追加数据而不是覆盖。
                        LOCK_EX                 在写入时获得一个独占锁。
        context        一个 context 资源。
    3)、返回:
        该函数将返回写入到文件内数据的字节数,失败时返回FALSE
    4)、使用:
        public function addlog(){
            $filePath = APP_PATH."/data/test/";
            $this->createDirectory($filePath);    //递归创建目录
            $fileName = $filePath."abc.txt";
            //file_put_contents($fileName, date('Ymd H:i:s')."\r\nSUCCESS\r\n", FILE_APPEND | LOCK_EX);
            file_put_contents($fileName, date('Ymd H:i:s').PHP_EOL."SUCCESS".PHP_EOL, FILE_APPEND OR LOCK_EX);
        }
        
        //递归创建目录,并给最大权限 777
        public function createDirectory( $dir ){
            return  is_dir ( $dir ) or $this->createDirectory(dirname( $dir )) and  mkdir ( $dir , 0777);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值