Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从文本文件中读取多行_Php - Fatal编程技术网

PHP从文本文件中读取多行

PHP从文本文件中读取多行,php,Php,我有一个要通过文本配置文件解析的现有PHP代码,并将每个输入行存储为数组中的key=>value对,例如文本文件: key1 value1 key2 value2 key3 ' if ( foo) blahblah; else blaba; '; 所以key1-value1和key2-value2可以很容易地解析,但key3-value2实际上是单引号多行脚本代码 我现有的代码类似于 while (!feof($fd)) { $buffer = fgets($fd

我有一个要通过文本配置文件解析的现有PHP代码,并将每个输入行存储为数组中的key=>value对,例如文本文件:

key1 value1
key2 value2
key3 '

if ( foo) 
    blahblah;
else
    blaba;

';
所以key1-value1和key2-value2可以很容易地解析,但key3-value2实际上是单引号多行脚本代码

我现有的代码类似于

while (!feof($fd)) {
    $buffer = fgets($fd, 4096);
    $temp = explode(' ', $buffer);
    $array[$temp[0]] = $temp[1];
}
但是我如何通过key3进行解析,并对使用缩进跨越多行的脚本代码进行赋值呢。一旦我得到了预期的输入值,我还希望能够以HTML形式输出,保留脚本代码格式,这似乎不是一件小事,看起来preg_match可以匹配多行,但我认为FGET一次只能获得一行输入,我如何使用preg_match来做到这一点?有人有什么想法吗?

一些备选方案:

  • 使用JSON
  • 使用XML
  • 直接使用PHP代码并
    包含它
  • 使用函数
  • 使用

为什么不存储实际的php变量
$key1='value1'。。然后使用include\requireal。请注意,脚本代码可能会使用许多标识跨越许多行,我的示例只是一个非常简单的示例。我想大致了解一下如何处理这个问题一般来说你没有这个问题,因为这不是如何存储variablesok,也不是一般的:)有什么黑客方法可以做到这一点吗?存储一个长字符串,保留空格和跨多行的换行符。我支持JSON<代码>序列化
是列表的另一种可能性。在这种情况下,任何脚本都比自己的脚本好。我没有第三个选项直接使用PHP代码并包含它,请注意,配置文件中的脚本代码不是PHP代码,而是其他脚本语言代码。第四个选项parse_ini_文件似乎没有处理我在这里提到的特殊示例,我们正在引导您远离“特殊示例”,使用另一种标准格式或方法。我建议使用Herdeoc在PHP中存储脚本代码。您的代码可以是多行的,并包含任何特殊字符、引号等。