我想读取、更新,将数据从/插入到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"
),
);
在使用YAML时,必须非常精确地使用语法和缩进,在vi中编辑XML也可能有点混乱。
所以我想使用php数组变量?如何将其保存为上述格式?
脑海中浮现出几件事:
- 串行化,例如
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)
,它将很好地导入。我把它用于数据固定装置,它运行得很好。
好吧,如果你必须手动编辑文件,很难击败YAML,因为这种格式可能与你即将到来的(至少在这个星球上…)"一种设计的文件格式对手动编辑很友好。"
您对"使用PHP数组变量"的思考在这里实际上是无关紧要的,因为这些概念只适用于程序的操作。。。在读取中的数据之后,以及随后将数据写回之前它们与您决定使用的格式完全无关。
我建议你找出人类最容易处理的数据表示,然后围绕它编写计算机程序。此外,由于人类有可能吃到东西,程序应该不信任它的输入。如果遇到垃圾,它应该"礼貌、有意义和外交"地回应,例如:
- "哎呀,我根本看不懂那个文件。"
- 请稍等:该条目应该以大写三到四个字符的名称开头,例如WAC或PACS,但在第123456行没有
- "请稍等:此条目应至少包含以下密钥:"full_name"、"version"answers"etc"。"但567891号线并不能做到这一点。"
- "因为我刚刚在这个输入文件中发现了以下5个错误,如前所述,我特此拒绝处理其中的任何部分。(因此,我没有只是冲洗你的数据库。)"
好吧,你可以试试jason_encode/jason_edecode
它可以帮助您格式化所有数据以便输出。它还可以帮助您管理数据。
http://php.net/manual/en/function.json-encode.php
我使用了@Phil的解决方案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?>";