读取文本文件并在PHP中为变量分配键对值

时间:2017-09-01 17:11:45

标签: php file

我想阅读文本文件并将左侧变量指定给右侧值。我可以正确读取文本文件中的值,但不能回显$ variable1。

文本文件:

variable1="value91";
variable2="value92";
variable3="value93";
variable4="value94";
variable5="value95";

尝试过的代码:

$myfile = fopen("/var/myfile", "r");
while (!feof($myfile)) {
    $line = fgets ($myfile);
    echo "$line<br/>";
}
fclose ($myfile);

这会打印行值并且可以解析,但是如何在使用时分配键值:

问题:

echo $variable1; which will print "value91"?

如果不能动态地使用文件,我可以在读取文本文件之后静态为variable1,variable2赋值。

2 个答案:

答案 0 :(得分:1)

如果这有错误,请道歉。我好久没写PHP了。类似下面的内容(基于我对此使用Arrays的评论):

$myfile = fopen("/var/myfile", "r");
while (!feof($myfile)) {
    $line = fgets ($myfile);
    $lineA = explode("=", $line);
    $data[$lineA[0]]=$lineA[1];;
}
fclose ($myfile);

使用explode将行的键和值分解为数组。

然后将新的$data数组添加到爆炸中的键/值对。

现在关闭文件后,您可以根据密钥输出您的值:

echo $data["variable1"];

哪个应该回显value91

答案 1 :(得分:1)

您可以使用将字符串作为赋值目标的功能,因此......

moment(yourDateObject).format("YYYY-MM-DD[T]HH:mm:ss.SSS")

请注意,赋值使用$$ varName,因此它使用第一列作为变量的名称。

此输出 -

<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

$lines = file('data.txt', FILE_IGNORE_NEW_LINES);
foreach ( $lines as $line ) {
    $data = explode("=", $line);
    $varName = $data[0];
    $$varName = $data[1];
}

echo $variable1;