zoukankan      html  css  js  c++  java
  • PHP文件缓存

    项目中要用到临时存储一个数组,于是想利用PHP的文件操作来临时存储数组。

    步骤1:
    首先需要创建一个文件用到PHP文件操作相关函数

    (PHP 4, PHP 5, PHP 7)
    fopen — 打开文件或者 URL

    resource fopen ( string filename,stringmode [, bool useincludepath=false[,resourcecontext ]] )

    代码:

    <?php
    function create_file($file,$str)
    {
        $myfile=fopen($file,'w');
        fputs($myfile,$str);
        fclose($myfile);
        return $myfile;
    }
    //文件创建,$file为文件地址(包括文件名称),$str是要写入的数据

    步骤二:要存入数组信息,需要将数组序列化

    (PHP 4, PHP 5, PHP 7)
    serialize — 产生一个可存储的值的表示

    string serialize ( mixed $value )
    serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

    这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

    代码:

    <?php
    $arr=array(
        'a'=>'apple',
        'b'=>array('ball','banana') 
     );
     var_dump($arr);
    
     $str=serialize($arr);
    
     var_dump($str);

    显示:

    array (size=2)
      'a' => string 'apple' (length=5)
      'b' => 
        array (size=2)
          0 => string 'ball' (length=4)
          1 => string 'banana' (length=6)
    string 'a:2:{s:1:"a";s:5:"apple";s:1:"b";a:2:{i:0;s:4:"ball";i:1;s:6:"banana";}}' (length=72)

    步骤三:将序列化后的字符串存入文本文件读取时需要用unserialize()反序列化还原数组

    代码:

    <?php 
    function create_file($file,$str) //创建文件函数
    {
        $myfile=fopen($file,'w');
        fputs($myfile,$str);
        fclose($myfile);
        return $myfile;
    }
    $file="test.txt";
    $arr=array(
        'a'=>'apple',
        'b'=>array(
            'ball','banana'     
        )
    );
    $str= serialize($arr); //序列化数组
    create_file($file,$str);  //创建文件并且写入数据
    
    $arr_str=file_get_contents ($file,'r+');   //以字符串形式读取文件
    var_dump($arr_str);
    $arr=unserialize($arr_str);          //反序列化还原数组
    var_dump($arr);

    浏览器输出:

    string 'a:2:{s:1:"a";s:5:"apple";s:1:"b";a:2:{i:0;s:4:"ball";i:1;s:6:"banana";}}' (length=72)
    array (size=2)
      'a' => string 'apple' (length=5)
      'b' => 
        array (size=2)
          0 => string 'ball' (length=4)
          1 => string 'banana' (length=6)
  • 相关阅读:
    【2021 ECUG Con】聚势而来,与你相约花开时
    为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)
    centos6 yum 源失效 404
    [nsis]安装包反编译
    Web安全测试学习笔记-DVWA-盲注(使用sqlmap)
    Shellcodeloader免杀过火绒
    C#创建快捷方式-转载自ConExpress
    C#运行新线程,也可打开网页
    C#判断指定文件是否存在-转载mmgx(仅为方便找一下)
    C# 文件夹创建方法
  • 原文地址:https://www.cnblogs.com/haohaoyuan/p/7641564.html
Copyright © 2011-2022 走看看