我在這裏搜索了很多,但沒有解決我的問題(PHP)。刪除文件中的完全匹配
場景:用戶訪問帶有預先分配的註冊號碼(在datafile.txt中)的登錄頁面時,在字段中輸入數字時,如果存在號碼,腳本將搜索文件。
如果確實存在,請繼續下一步。當下一步完成時,我希望它自動「刪除」一次完成後最初使用的號碼。
我相信一個「搜索和替換」是要走的路,而搜索一個「確切」的匹配。
我的數據文件將類似於以下:(datafile.txt)
0
12
123
1234
12345
123456
12中,如果搜尋將不一樣123。
,我是這麼好心給前幾天是這樣來完成其他任務的腳本:
$numbers = file_get_contents("datafile.txt");
$uNumber = $_POST['uNum'];
if (@preg_match("/([^0-9]{$uNumber}[^0-9])/", $numbers)) {
echo "Numbers match";
}
我嘗試了一個新的任務做的,是下面的,但沒有成功:
$numbers = file_get_contents('datafile.txt', 'w+');
$uNumber = $_POST['uNum'];
if (@preg_match("/([^0-9]{$uNumber}[^0-9])/", $numbers)) {
$numbers = preg_replace('.$_Post["uNum"]','',$numbers);
echo "Existed but will be deleted from file. ";
} else {
echo "Message showed if not in file.";
}
任何幫助將不勝感激。
你在那裏做的只是替換$ uNumber的值。實際上你想要做的就是替換$ uNumber的值,並將其保存爲文件的新內容。如我錯了請糾正我。 – magicianiam
是的。一旦最初輸入1234(uNum),我希望之後將其從文件中刪除。 –
然後你應該在數字被刪除後更新文件。嘗試在變量更新後使用http://www.php.net/manual/en/function.file-put-contents.php – magicianiam