2015-02-10 78 views
0

我無法理解如何從使用PHP的.dat文件中檢索各個數據行(例如名字,年齡,出生年份,性別)。我對網上閱讀的所有內容感到困惑。我需要從.dat文件的文本中獲取每行,併爲每行分配自己的$variable以供稍後用於打印。我到目前爲止。如何使用PHP從.dat文件中檢索各個數據行?

<?php 
$personalinfo = fopen("personaldata.dat", "r"); 

$firstname = <!-- line one of .dat file -->; 
$age = <!-- line two of .dat file -->; 
$birthyear = <!-- line three of .dat file -->; 
$sex = <!-- line four of .dat file -->; 
$weight = <!-- line five of .dat file -->; 

fclose($personalinfo); 
print("<p> $firstname you are $age years old, born in $birthyear, you are $weight lbs. and $sex.</p>") 
?>  
+1

是不是使用數據庫不是一個選項,如果不是一個更安全的選項?更不用說比文本文件更容易和更易於管理。 – 2015-02-10 05:26:05

+1

'$ lines = explode(「\ n」,$ personalinfo); $ firstname = $ lines [0]; ... etc'?說實話,我完全和@ Fred-ii一樣。數據庫不是一個選項? – Darren 2015-02-10 05:26:31

+0

@ Fred-ii-我想我明白了,我只需要知道如何從.dat文件中讀取單個行。安全不是問題。 – 2015-02-10 05:29:18

回答

2

dat文件格式

有廣泛的格式.dat文件。首先,您必須確定數據在.dat文件中的格式。這聽起來像你說該文件是行分隔(每行代表一個值。)

訪問文件行(文件功能)

PHP可以很容易地獲取文件資源的一行在一個時間,作爲文件函數返回一個數組從文件線形成:

<?php 
$personalinfo = file("personaldata.dat"); 

$firstname = $personalinfo[0]; 
$age = $personalinfo[1]; 
$birthyear = $personalinfo[2]; 
$sex = $personalinfo[3]; 
$weight = $personalinfo[4]; 
print("<p> $firstname you are $age years old, born in $birthyear, you are $weight lbs. and $sex.</p>"); 

訪問文件行(舊學校)

<?php 
$personalinfo = fopen("personaldata.dat", "r"); 
$firstname = fgets($personalinfo); 
$age = fgets($personalinfo); 
$birthyear = fgets($personalinfo); 
$sex = fgets($personalinfo); 
$weight = fgets($personalinfo); 
fclose($personalinfo); 
print("<p> $firstname you are $age years old, born in $birthyear, you are $weight lbs. and $sex.</p>"); 
+0

可以在打印之前關閉文件,還是必須在打印後關閉文件?也非常感謝你的答案! – 2015-02-10 05:37:38

+0

@NicholasFoxworthy你不必關閉這個調用,因爲它沒有返回一個資源,它返回一個數組:) – AdamJonR 2015-02-10 05:42:35

+0

@NicholasFoxworthy而且,對不起,我把你的fopen()調用放在那裏,而不是file(),什麼我打算打字。如果刷新答案,您將看到更新的代碼。 – AdamJonR 2015-02-10 05:44:37