Как реализовать.

Uglik

Старатель
Регистрация
8 Окт 2008
Сообщения
350
Реакции
14
Здравствуйте

Целый день пытаюсь реализовать данную задачу и ничего не получается.

Суть вот в чем. Имеется массив с title.

Например:

PHP:
$arr = array("title1","title2","title3","title4","title5")
И файл logs.txt

Нужно поочередно сделать проверку вот такого плана. При каждом обращений к скрипту. А не в одном цикле.

Запускаем скрипт. Берем title1, проверяем содержится ли он в logs.txt, если нет берем его обрабатываем и записываем в logs.txt. и только title1!

Запускаем скрипт следующий раз. Он берет title1 проверяет, если он содержится в logs.txt пропускаем его и берет title2, если его нет проделываем тоже самое что в прошлый раз.

Запускаем скрипт еще раз. Берем title1 проверяем существует ли в logs.txt, существует, пропускаем, берем title2 проверяем, существует, пропускаем, берем title3 нету, обрабатываем, записываем в logs.txt. и тд.

Надеюсь суть понятна ;)

Так вот моя проблема в том что у меня не получается так реализовать как я написал.

Если делать в цикле все легко. Пример:

PHP:
for($i = 0; $i < count($arr); $i++) {
 
if(!"проверяем существует ли title в logs.txt") {
 
      Если нет, обрабатываем его и записываем в logs.txt
 
}
 
}

Все поочередно проверяется.

Но! Меня интересует пример как я описал выше. Что бы брать один title из исходного массива, первый который не существует в logs.txt. Буду весьма благодарен кто снимет напряжение в моей голове.
 
break поставь, если условие сработало, для выхода из цикла, если я правильно понял задачу.
 
PHP:
<?php
 $arr = array("title1","title2","title3","title4","title5");
 $count = count($arr);
 $logs = file_get_contents('logs.txt');
 for($i = 0; $i < $count; $i++) {
     $pos=strpos($logs,$arr[$i]);
     if($pos===false || $pos===null) {
        //обрабатываем его и записываем в logs.txt, причём не изменённый!!
         break;
    }
 }
?>
 
Назад
Сверху