store data into a text file using php?

前端 未结 6 1268
有刺的猬
有刺的猬 2021-01-13 14:46

i am trying to store data in a text file, something like an array into a text file using php instead of storing into mysql database.

for example here are the data to

相关标签:
6条回答
  • 2021-01-13 15:10

    I made a tiny library (~2 KB; <100 lines) that allows you to do just this: varDx

    It has functions to write, read, modify, check and delete data. It implements serialization, and therefore supports all data types.

    Here's how you can use it:

    <?php
    require 'varDx.php';
    $dx = new \varDx\cDX; //create an object
    $dx->def('file.dat'); //define data file
    
    $val1 = "this is a string";
    $dx->write('data1', $val1); //writes key to file
    echo $dx->read('data1'); //returns key value from file
    
    0 讨论(0)
  • 2021-01-13 15:13

    These functions should do what you want :

    function storeInTextFile($array,$path) {
        if(file_exists($path)) {
             $handle = fopen($path,'wb');
             fwrite($handle, arrayToString($array));
             fclose($handle);
        }
    }
    
    function arrayToString($array) {
        $string = '';
        foreach($array as $key => $value) {
            $string .= "{$key} => {$value}\n";
        }
        return $string;
    }
    
    function stringToArray($string) {
        $explodedString = explode('\n',$string);
        $returnArray = array();
        foreach($explodedString as $arrayValue) {
            list($key,$value) = explode(' => ',$arrayValue);
            $returnArray[$key] = $value;
        }
    
        return $returnArray;
    }
    
    0 讨论(0)
  • 2021-01-13 15:20

    Storing:
    1. Use serialize() to serialize your array into a string
    2. Write that string to text file using file_put_contents()

    Reading:
    1. Use file_get_contents to read text file
    2. Use unserialize() to unserialize previously serialized array

    serialize()/unserialize() can be replaced by json_encode()/json_decode()

    0 讨论(0)
  • 2021-01-13 15:25

    You may use

    • fopen and fwrite to write your data into a file. See also http://www.tizag.com/phpT/filewrite.php
    • the file_get_contents function to read from files. See more: http://php.net/manual/en/function.file-get-contents.php

    In case you want to convert the array to an XML you might want to read this post: How to convert array to SimpleXML

    0 讨论(0)
  • 2021-01-13 15:27

    You should make a uniqid then they won't be able to access any other txt files in the server.

    <?php
    
        #Get a secure filename
        $username = "myUsername"
        $filename = uniqid($username, true).".txt";
    
        //Create the array
        $userInfo = ["username" => $username, "points" => 0];
    
        // Store the data
        file_put_contents($filename, serialize($userInfo));
    
        // How to get the data
        $userInfo = unserialize(file_get_contents($filename));
        print($userInfo["points"]);
        //or
        print($userInfo["username"]);
    
    ?>
    
    0 讨论(0)
  • 2021-01-13 15:29

    //-- short -------------------------------------------

    $data = [ "a" => "A",  "b" => "B", "c" => "C" ];
      echo '<br> data - array: ';
      var_dump($data);
    
    file_put_contents('db.php', json_encode($data) );
    
    //get
    $g = json_decode(file_get_contents('db.php') , 1);  // 1 Array , 0  Object
    
      echo '<br><hr>short: var_dump($g): ';
      var_dump($g);    
    

    //-- long -------------------------------------------//

    $data = [ "a" => "A",  "b" => "B", "c" => "C" ];
      echo '<br> data - array: ';
      var_dump($data);
      echo '<br> json_encode($data): ';
    
    $jdata = json_encode($data);
      var_dump($jdata); 
      echo'<hr>';
    file_put_contents('db.php', $jdata);
    
    //get
    $jg = file_get_contents('db.php');
      echo ' $jg = file_get_contents(\'db.php\'); $jg : ';
      var_dump($jg);
    
      echo '<br> json_decode($jg , 1) //1 Array<br>';
    $g = json_decode($jg , 1);  
      var_dump($g);
    
      echo '<br> json_decode($jg , 0)  //0 Object<br>';
    $g = json_decode($jg , 0);
      var_dump($g);
    
    0 讨论(0)
提交回复
热议问题