2017-09-01 98 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"