【发布时间】:2012-05-28 19:29:16
【问题描述】:
我在这里进行了广泛搜索,但没有解决我的问题(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 的值并将其保存为文件的新内容。如果我错了,请纠正我。
-
是的。最初输入 1234 (uNum) 后,我希望之后将其从文件中删除。
-
那么您应该在删除号码后更新文件。在变量更新后尝试使用php.net/manual/en/function.file-put-contents.php
-
我试过 file_put_contents($numbers, $uNumber);在 OhMrBigshot 的代码末尾,但它对我不起作用。我可能混淆了一些东西。
-
应该是file_put_contents(datafile.txt, $numbers);