failed to open stream время от времени

Тема в разделе "PHP", создана пользователем phillip, 6 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Никак не пойму в чем дело.... Написал пользовательскую функцию, которая содержит в себе
    Код:
    $category="lesbians";
    $path= "/materials/".$category."/keys.txt";
    $keys = file($path);
    то есть запись в массив файла, который находится в вложенной папке в скрипте. Далее по коду я вызываю циклом эту функцию несколько раз, допустим 10. Дак вот. Внутри этого цикла иногда все ок, а иногда вот что:
    Код:
    Warning: file(/materials/lesbians/keys.txt) [function.file]: failed to open stream: No such file or directory
    :eek: И это внутри цикла. То есть цикл должен был сделать так 10 раз. Из десяти раз успешно в среднем 6. И 4 раза- провальных. с такой ошибкой
    что за хрень? почему так((
     
  2. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Пишет так, потому что видимо то что ты забисываешь достаточно объёмное и функция дёргает файл, даже не смотря на то что он уже занят записью.

    Выложи полный код (на сколько это возможно) :ay:
     
    phillip нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Спасибо. Попробую пока что приткнуть в цикл функцию sleep(); Если толку не будет- отпишусь
     
  4. newd

    newd Создатель

    Регистр.:
    13 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    видимо блокировки какието. А зачем ее по несколькку раз вызывать в цикле, закешруйте массив и сэкономите на обращении к ФС
     
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    А как закешировать? подскажите пожалуйста
     
  6. rider-sx

    rider-sx Писатель

    Регистр.:
    2 сен 2008
    Сообщения:
    7
    Симпатии:
    1
    http://hell.phpdude.ru/archives/584
    Вот ссылка на класс кеширования )
    вообще что за функцию Вы используете ? file() Что это ??? fopen(string filename, string param) вот что вам надо...ИМХО
     
    phillip нравится это.
  7. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    26
    а нафиг его вообще кешировать?
    PHP:
    $category="lesbians";
    $path"/materials/".$category."/keys.txt";
    $keys file($path);
    а
    PHP:
    while {

    }
    уже сделать ниже...т.е. в цикле работать с содержимым и не дергать сам файл
     
    phillip нравится это.
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    В сообщении говорится, что нет такого файла или каталога. Проверь, может быть на сервере, начиная от корня, действительно нет такого каталога или подкаталога?

    Код:
    /materials/lesbians/keys.txt
    Когда формируется этот файл? Может быть, он периодически переформировывается, и есть момент, когда файла действительно не существует?
     
    phillip нравится это.
  9. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    PHP:
    $category="lesbians";
    $path"/materials/".$category."/keys.txt";
    if ( 
    file_exists$path )) {
    $keys file($path);
    } else {
    # действия если файла нет, т.к. твоя ошибка указывает на это
    }
     
    phillip нравится это.
  10. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    файл есть. как его не может быть если я писал что в рамках одного исполнения скрипта он то находит его, то не находит. или вы хотите сказать что пока скрипт исполняется- файл у меня бегает из одной папки в другую, чай попить? :)

    Jik, файл лежит там изначально. Не переформируется он вообще. Просто открывается время от времени, чтобы оттуда взять рендомно ключевик.

    Casper_R, while сделать ниже в моем случае бессмысленно. Хотяяяя...... попробую глянуть, похоже там можно так прикрутить
     
Статус темы:
Закрыта.