Strstr возвращает ложь вместо истины - PullRequest
0 голосов
/ 16 февраля 2012

Я хочу открыть файл, проверить, не существует ли в файле deos строки, записать его.

Делаем это:

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

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

Но после записи я получил повторяющиеся значения в category.txt,Единственная проблема, которую я могу ожидать, это проблема кодирования, но все файлы имеют формат utf-8 и в categories.txt у меня только латинские символы и немного символов.

Есть идеи, в чем проблема?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

попробуй вот так.

$pos = strpos($content, $cat);
if($pos === false){
fwrite($fp,','.$cat);
}
0 голосов
/ 16 февраля 2012

Хорошо, я думаю проблема в fopen.Я изменил это, и код начинает работать:

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

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

Спасибо за помощь.

...