关于 php:Strstr 返回 false 而不是 true

Strstr return false instead of true

我要打开文件,检查文件中是否不存在字符串deos 写入它。

这样做:

1
2
3
4
5
6
7
$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 我只有拉丁符号和几个符号。

有什么想法吗?


像这样试试。

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


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

1
2
3
4
5
6
7
$content=file_get_contents('categories.dat');
$type=(string) $type;
$content=(string)$content;

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

感谢您的帮助。