我已经有了一些代码来查看我的txt文件,看看我是否已经拥有该项目,但它从来没有在第一行查找。有什么我可以做的来解决这个问题吗?
<?php
for($i=0, $count = count($match[1]);$i<$count;$i++) {
$filename = 'alreadyadded.txt';
$searchfor = $match[1][$i];
$file = file_get_contents($filename);
if(strpos($file, $searchfor)) {
echo $match[1][$i]." Is already added, No Actions needed. <br />";
} else {
echo "grabbing this one".$match[1][$i]."<br />";
}
}
?>
答案 0 :(得分:1)
你应该这样做:
if(strpos($file, $searchfor) !== false) {
echo $match[1][$i]." Is already added, No Actions needed. <br />";
} else {
echo "grabbing this one".$match[1][$i]."<br />";
}
如果找到的位置是0(第一个字符),你基本上会得到错误的结果。您希望将结果与false进行比较,包括数据类型。
0 == false返回true
0 === false返回false
0!= false返回false
0!== false返回true
答案 1 :(得分:0)
这不能解决问题,但应该稍微加快一点。您不需要每次都读取文件。
$filename = 'alreadyadded.txt';
$file = file_get_contents($filename);
for($i=0, $count = count($match[1]);$i<$count;$i++) {
$searchfor = $match[1][$i];
if(strpos($file, $searchfor)!==false) {
echo $match[1][$i]." Is already added, No Actions needed. <br />";
} else {
echo "grabbing this one".$match[1][$i]."<br />";
}
}