2017-09-01 100 views
0

阅读文本文件中的变量分配密钥对价值和PHP阅读文本文件,并在PHP

变量分配密钥对价值我想读的文本文件和左侧变量分配给右侧值。我可以正确读取文本文件中的值,但不能回显$ 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"? 

请帮我解决这个问题。静态分配值给变量1,变量2以及读取文本文件后,如果不可能动态使用文件,我当然可以。

+0

任何时候你的大脑开始下跌“的循环动态变量命名”的路径,而不是想“阵列”。几乎所有的编程语言都是如此。 – JNevill

+0

你可以给我一些代码的提示吗? –

回答

1

道歉,如果这有错误。我很久没写好php了。像下面(基于我对使用数组作为此评论):

$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

可以使用能够使用一个字符串作为目标所以...

<?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; 

请注意,作业使用$$ varName,所以它使用第一列作为变量的名称。

此输出 -

"value91"