(PHP帮助)如果文件中存在特定数字,请执行此操作

Posted

技术标签:

【中文标题】(PHP帮助)如果文件中存在特定数字,请执行此操作【英文标题】:(PHP help) If specific number exists in file, do this 【发布时间】:2012-05-27 01:41:21 【问题描述】:

这是一个与 php 相关的问题。

我已经广泛搜索了以下问题的解决方案,但没有找到适合我的解决方案。如果有人可以帮助我,将不胜感激。

我的想法是创建一个登录页面,如果将“特定”预先确定的注册号提供/发送给用户,则访问登录页面并且该号码存在于文件中,执行/允许登录权限。

例如,如果一个用户的注册号是12345,而另一个是123,想先搜索一下用户的号码是否存在,然后做某事()。

因此,如果“123”已经存在,则搜索“12345”与搜索“234”不同,因此它必须找到一个或多个特定数字。

如果有区别,在数字之前和/或之后应该有一个“空格”。

这将在现有文件中。

代码:

<?php 
$filename = 'datafile.txt'; 

// Data file may contain the following number(s) or any other 
// 123 (no) 
// 1234 (match) 
// 12345 (no) 
// 123456 (no) 
// exact match needed to proceed to page fopen($filename); 
$searchfor = '1234'; 

// this needs to be a variable 
// I don't know what the number will be used. 
$file = file_get_contents($filename); 

if (preg_match($file, $searchfor)) 
  echo "Match found. Proceed to the page."; 
 else  
  echo "Match not found. Try again."; 
 

fclose($filename); 
?>

谢谢。任何帮助表示赞赏,干杯。

弗雷德

【问题讨论】:

您的问题对我来说不是很清楚,但听起来正则表达式可能是提供这种验证的最佳方式。 你的问题很不清楚。请改写,以便我们为您提供帮助。 可能在该文件中添加带有分隔符的注册号,例如:|||,然后无论何时要检查用户是否存在,都可以打开文件,并使用explode("|||", $文件);你会得到一个包含这些注册号的数组,然后尝试 in_array() 如果它存在,它将返回 true ... 这是我一直试图开始工作的代码,它可能会自行解释。 问题是,数据存储在 .html 文件中,不会按特定顺序排列。脚本需要在文件中找到确切的出现。 【参考方案1】:

将这些存储在平面文件中可能不是我这样做的方式,但如果我要使用平面文件,以下示例应该可以正常工作:

$nums = "12345 34 45 12345 23"; # use file_get_contents to load from file
$uNum = 34;

if ( preg_match( "/[^0-9]$uNum[^0-9]/", $nums ) ) 
  echo "Access";
 else 
  echo "Denied";

至于填充$nums 字符串,您可以使用file_get_contents() 拉入包含所有数字的文件内容。

/ 表示模式的开始
[^0-9] 模式中的空格不能被任何数字占用
$uNum 用户编号 - 上例中为 34
[^0-9] 模式中的空格不能被任何数字占用
/ 表示模式结束

基本上,如果我们的号码在它的任一侧都有一个数字而不是一个空格,或者根本没有,我们的号码将不会被找到。

【讨论】:

谢谢 Johathan,我已经完成了填充 $numbers 的工作。现在,我所要做的就是想办法为它构建一个表单(在同一个脚本中),并使用输入的人的代码,以反映 $uNumber @FredFletcher 将$uNum 设置为$_POST['uNum'],一切就绪。当然,你需要&lt;form method='post'&gt;&lt;input type='text' name='uNum' /&gt;&lt;input type='submit' /&gt;&lt;/form&gt; 漂亮!谢谢乔纳森,你帮了大忙!非常感谢,加油!我做了一个回声"&lt;form action=\"" . $PHP_SELF . "\" method='post'&gt;&lt;input type='text' name='uNum' /&gt;&lt;input type='submit' /&gt;&lt;/form&gt;"; - 是时候让我休息一下了。再次感谢:) 我点击了“向上箭头”,并收到以下错误消息“投票需要 15 声望”。我是这个网站的新手,可能是为什么? @FredFletcher 啊,是的。随着时间的推移,你会建立更多的声誉。很高兴我们能够解决您的问题。

以上是关于(PHP帮助)如果文件中存在特定数字,请执行此操作的主要内容,如果未能解决你的问题,请参考以下文章

通过命令行使用“复制”和“粘贴”时备份文件

如果用户已登录,请执行此操作-5

如果文本文件中的值小于 X,请执行以下操作

如果存在分类法,则使用 Wordpress

如果它存在于vim中,则删除行开头的特定char

php 数组判断key是不是存在,如果存在显示此key的value