PHP搜索文本文件看不到第一行

时间:2013-12-21 11:18:25

标签: php

我已经有了一些代码来查看我的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 />";
    }
}
?>

2 个答案:

答案 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 />";
    }
}