【发布时间】:2014-12-19 21:12:34
【问题描述】:
我有一个现有的 PHP 代码来解析文本配置文件并将每个输入行作为键 => 值对存储在数组中,例如文本文件:
key1 value1
key2 value2
key3 '
if ( foo)
blahblah;
else
blaba;
';
所以 key1 value1 和 key2 value2 可以很容易地解析,但是 key3 value 实际上是单引号多行脚本代码。
我现有的代码类似于
while (!feof($fd)) {
$buffer = fgets($fd, 4096);
$temp = explode(' ', $buffer);
$array[$temp[0]] = $temp[1];
}
但是我如何解析 key3 并评估一个跨多行缩进的脚本代码。一旦我得到预期的输入值,我也希望能够以 HTML 形式输出,保留脚本代码格式,这似乎并不简单,看起来 preg_match 匹配多行,但我认为 fgets 只得到一行一次输入,我该如何使用 preg_match 来做到这一点?有人知道吗?
【问题讨论】:
-
为什么不存储实际的 php 变量
$key1='value1';.. 然后使用 include\require -
还请注意,脚本代码可能会跨越具有许多标识的多行,我的示例只是非常简单的示例。我想大致了解如何解决这个问题
-
一般你不会有这个问题,因为这不是你存储变量的方式
-
好的,一般情况下不是这样 :) 有没有什么骇人听闻的方法可以做到这一点?存储一个长字符串,保留空格,跨多行的换行符。
标签: php