使用php将数据存储到文本文件中?

时间:2012-09-11 08:22:48

标签: php

我正在尝试将数据存储在一个文本文件中,类似于使用php而不是存储到mysql数据库中的数组到文本文件中。

例如,这里是要存储在文本文件中的数据

name=>john
age=>25
location=>australia

然后将其保存到文本文件后,如何将内容输出并用php解析,因为像php一样可以找到名称,年龄和位置并将其回显(类似于解析数组)

我需要它将数据存储到文本文件中,以便可以轻松地从其他域访问,而无需位于同一个域,连接到数据库,从数据库获取数据。我正在寻找一个快速的解决方案。 :)

我不确定这种功能应该考虑哪个方向,希望有人可以指出我。

6 个答案:

答案 0 :(得分:11)

存储:
 1.使用serialize()将数组序列化为字符串
 2.使用file_put_contents()

将该字符串写入文本文件

读:
 1.使用file_get_contents读取文本文件
 2.使用unserialize()反序列化先前序列化的数组

serialize() / unserialize()可以替换为json_encode() / json_decode()

答案 1 :(得分:1)

您应该设置为唯一,否则他们将无法访问服务器中的任何其他txt文件。

flag_icd(i) =  substr(icd(i),1,3) in ("433" "434") ;

答案 2 :(得分:0)

您可以使用

如果您想将数组转换为XML,可能需要阅读以下文章:How to convert array to SimpleXML

答案 3 :(得分:0)

这些功能应该符合您的要求:

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;
}

答案 4 :(得分:0)

// - 短------------------------------------------ -     

$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);

答案 5 :(得分:-1)

我制作了一个很小的库(〜2 KB; <100行),您可以执行此操作:varDx

它具有写入,读取,修改,检查和删除数据的功能。 它实现了序列化,因此支持所有数据类型。

这是使用方法:

String value =  method(10);