Strstr返回false而不是true

时间:2012-02-16 09:45:18

标签: php fopen fwrite fread strstr

我想打开文件,检查文件中是否存在字符串deos。

这样做:

$fp=fopen('categories.txt','a+');
$content=fread($fp,filesize('categories.txt'));

if(!strstr($content,$cat)){
    fwrite($fp,','.$cat);
}
fclose($fp);

但是写完后我在categories.txt中重复了这些值。 唯一可以解决的问题是编码问题,但是所有文件都是utf-8,在categories.txt我只有拉丁符号和几个符号。

任何想法都存在问题?

2 个答案:

答案 0 :(得分:2)

尝试这样。

$pos = strpos($content, $cat);
if($pos === false){
fwrite($fp,','.$cat);
}

答案 1 :(得分:0)

好的,我认为问题在fopen。我改为这个,代码开始工作:

$content=file_get_contents('categories.dat');
$type=(string) $type;
$content=(string)$content;

if(!strstr($content,$type)){
    file_put_contents('categories.dat',$content.','.$type);
}

感谢您的帮助。