2011-01-22 62 views
0

我有一個文件,其中包含密碼/用戶名:標識線在一個文件在PHP

托馬斯123
約翰·321

什麼是確定行,並增加與他們聯繫信息的最佳方式?就在密碼文件我不想商店,因爲文件事宜的大小。我想記錄前加一個標識字符串,像這樣:

[1]
托馬斯123
[2]
約翰321

你怎麼看?這是識別線條的好方法嗎?如果是的話,我如何在標識符[數字]之後讀出行?

如果我能讀出來,然後在第二個文件中,我可以存儲聯繫信息。

[1]
電子郵件等
[2]
電子郵件等

這是脫機應用的配置文件,不幸的是我不能改變該文件(最大的結構改變:添加行之前的標識符)或使用數據庫。

太感謝你了,

阿德里安

+3

好的方法是使用數據庫來代替。即使`sqlite`可能是一個更好的解決方案。 – zerkms 2011-01-22 08:44:15

回答

0

你可以使用while循環讀取所有其他線路中的ID和所有其他線路中的用戶名和密碼;然而,就像@zerkms所說的那樣,你最好將自己的精力投入到一個久經考驗的數據庫中。

學習使用數據庫將爲您節省時間,以便在每個項目中不必精確地找出如何操作平面文件。

可重複使用的解決方案使您能夠專注於您的目標和產品,無論這可能是什麼。

0

由於zerkms在他對你的問題的評論中寫道,你應該使用一個數據庫。如果您在服務器上設置數據庫時感覺不舒服,請查看SQLitephp manual),這是一個基於文件的數據庫,非常易於使用和設置。

如果你想堅持文本文件的方式,爲什麼寫你自己的格式和解析器?你可以使用現有的格式,如JSON(可以用json_decode解析)或者甚至是INI文件(使用parse_ini_file)。

並且:永遠不要將您的文本文件存儲在全局可訪問的位置(例如webroot)。

+0

夥計們,這是一個離線應用程序的配置文件,可悲的是我不能改變該文件的結構(最大變化:在行之前添加一個標識符) – Adrian 2011-01-22 09:05:55

0

假設密碼文件中的用戶名是唯一的(否則它不會很有用)。假設情況是這樣的,爲什麼不能在沒有添加任何內容的情況下保持原有結構?然後,您的聯繫人文件可以格式化爲INI文件或JSON文件,如用戶名作爲密鑰建議的bummzack。

0

您可以像處理文件函數一樣簡單地處理此操作。

$lines = file ('passwords.txt'); 

之後,您將擁有從0到N-1編號的所有行。