【发布时间】:2016-12-16 08:39:25
【问题描述】:
我正在尝试打开一个文件并将每一行与一个字符串进行比较以查看它们是否相同,但它不起作用,这是代码。
$toSearch="moizhusnain@hotmail.com";
$textData=array();
$fla=FALSE;
$file=fopen('text.txt','r') or die('Unable to open file.');
while(!feof($file))
{
$textData[]=fgets($file);
}
fclose($file);
for($i=0;$i<count($textData);$i++)
{
echo $textData[$i]."<br/>";
if (strcmp($toSearch,$textData[$i])==0)
{
echo "Yes";
}
}
【问题讨论】:
-
我假设,每个
$textData[$i]的末尾都有一个换行符 (\n),所以它可能不匹配?为什么还要使用 strcmp? -
1.
strcmp区分大小写。 2.使用===比较运算符 -
Simple Way
shell_exec("grep -h 'moizhusnain@hotmail.com' filename")如果得到输出则存在,否则找不到匹配项 -
不要将数据行逐行加载到数组中,而是直接在
while中进行比较。你正在做的是矫枉过正,你在浪费内存和 CPU。 -
@Saurabh
shell_exec默认情况下并不简单...尤其是如果您不被允许调用它(一些主机非常挑剔)