我認爲已經有一個問題了,但我找不到一個。也許解決方案太簡單了...無論如何,我有一個平面文件,並希望讓用戶根據名稱更改值。我已經整理出創造新名稱+使用fopen('a')
模式,使用jQuery發送AJAX調用與newValue
和newName
值對。但說的內容是這樣的:使用PHP查找並替換平面文件中的值
host|http:www.stackoverflow.com
folder|/questions/
folder2|/users/
現在我想改變folder
值。所以我會發送folder
作爲oldName
和/tags/
作爲newValue
。覆蓋價值的最佳方式是什麼?列表中的順序無關緊要,名稱始終位於左側,然後是|
(管道),然後是值new-line
。
我首先想到的就是閱讀列表,它存儲在數組中,搜索所有[0]
的爲oldName
,然後更改屬於它的[1]
,然後將它寫回文件。但我覺得有更好的方法呢?有任何想法嗎?也許regex?
不要忘記某種鎖定機制。如果兩個腳本同時編輯文件,一定會遇到麻煩。 – extraneon 2010-05-31 14:23:29
CSV是「逗號分隔值」的首字母縮寫,而分隔符是管道而不是逗號。儘管許多CSV導入程序允許您將分隔符設置爲非逗號,但我仍然認爲最好將其稱爲「平面文件」。 http://en.wikipedia.org/wiki/Flat_file_database – HostileFork 2010-05-31 14:32:27
@extraneon是的,這隻適用於管理員。每個管理員將有一個文件。但我會看看到鎖定機制,只是爲了安全起見(:謝謝你提醒我 @Hostile叉,是的,我知道,但實在是沒有任何兩者之間的實際差別,有沒有? – peirix 2010-05-31 14:35:01