2012-02-14 57 views
0

更新从/插入数据到平面文件中的结构如下面(简版)在PHP和也可手动。什么是最简单的方法来处理它?如何在php中读取/写入结构化数据?

$schools = array(

    "PHCS"=> array(
     "full_name"=> "Pacific Hills Christian School", 
     "version"=> "4.0.2b", 
     "etc"=> "etc" 
    ), 

    "WAC"=> array(
     "full_name"=> "Wollondilly Anglican College", 
     "version"=> "4.0.1", 
     "etc"=> "etc" 
    ), 
); 

在vi中使用YAML和编辑XML时,必须非常精确地使用语法和缩进,也可能有点麻烦。

所以我想使用一个PHP数组变量?我怎样才能以上述格式保存它?

+0

请更具体。你的意思是一个数据库?如果是这样的话,看起来很简单。 – Rooster 2012-02-14 04:30:33

+0

我在脑海中有一个简单的平面文件。 – Radek 2012-02-14 04:37:04

+2

http://php.net/manual/en/function.var-export.php – Phil 2012-02-14 04:40:47

回答

1

夫妇的事情浮现在脑海中:

  • 系列化,例如file_put_contents($file, serialize($schools))
  • sqlite,这不是一个平面文件,但很容易开始 - 你只需要在你的数据库文件中指向PDO,然后离开你。您可以通过CLI和基于Web的工具进行编辑。

编辑:啊,如果你需要通过文本编辑器进行编辑,这些不会很好。你也可以使用你的格式在PHP -

return array(

    "PHCS"=> array(
        "full_name"=> "Pacific Hills Christian School", 
        "version"=> "4.0.2b", 
        "etc"=> "etc" 
     ), 

     "WAC"=> array(
        "full_name" => "Wollondilly Anglican College", 
     "version"=> "4.0.1", 
          "etc"=> "etc" 
    ), 
 ); 

然后你就可以弹出,在一个文件,然后执行$schools = require($schools),它会很好地进口。我使用这个数据装置,它工作得很好。

+0

啊,感谢Phil提供了'var_export()' - 这会为我的最后一个建议写入文件。我不知道那个电话! – halfer 2012-02-14 10:42:12

1

那么,如果你必须手工编辑这个文件,就很难击败YAML,因为这种格式可能与你将要来临的距离(至少在这个星球上至少......)到“一个文件格式是设计友好的被手动编辑。“

你“使用PHP数组变量”的锤炼是真正这里无关紧要,因为这些概念只适用于程序的操作......它读取数据之后,它随后被写入前数据返回出来。他们根本没有什么要处理您决定使用的格式。

我建议你弄清楚什么数据表示是最简单的来处理,然后编写计算机程序。此外,由于人类可能存在某些事情,该计划应该不信任其投入。如果遇到垃圾,它应该“有礼貌地,有意义地和外交地”回应,例如:

  • “糟糕,我根本就读不完那个文件。 “
  • ”稍等片刻:该条目应该以三或四个字符的大写字母开头,例如WAC或PACS,但在123456行则不会。“ “
  • ”稍等片刻:该条目应该至少包含以下键:“full_name”,“版本”和“等”,但第567891行不这样做。“
  • “因为我刚刚发现在此输入文件中的以下5个错误,前面列出,在此,我拒绝处理的任何部分。(所以,我没有只是软管你的数据库。)”
1

好吧,你可以尝试jason_encode/jason_decode

它可以帮助你格式化所有的数据输出。 它还可以帮助你管理数据。

http://php.net/manual/en/function.json-encode.php

+0

我完全忘了json ... – Radek 2012-02-14 05:00:23

+0

虽然JSON手动编写可能有点棘手,但匹配大括号会很痛苦,尤其是因为它通常不会包含很多换行符:) – halfer 2012-02-14 10:40:35

+0

它看起来像'/'在JSON中被转义。我有PHP 5.3所以我不能使用'JSON_UNESCAPED_SLASHES'选项为json_encode。 – Radek 2012-02-14 22:10:29

0

我用@菲尔的解决方案php.net/manual/en/function.var-export.php

不要忘记插入

  • 一个PHP脚本模块,与<?php和结束的开始与?>
  • variable name以下=

你可以使用像

<?php \n\n\n\$schools=\n" . var_export($schools,true) . "\n\n\n?>";

相关问题