За последние 24 часа нас посетили 62207 программистов и 1749 роботов. Сейчас ищут 954 программиста ...

Кэш файлов мешает или что-то другое?

Тема в разделе "Прочие вопросы по PHP", создана пользователем m4a12345, 24 янв 2016.

  1. m4a12345

    m4a12345 Новичок

    С нами с:
    24 янв 2016
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте. Сразу скажу - усиленный поиск в гугле не нашел.
    Ситуация - пишем в существующий файл, потом пытаемся читать, что записали, но на чтение приходит старая версия файла. Изменения ловятся на втором - третьем выполнении скрипта.
    Код (PHP):
    1. $file = fopen( '$id' . '.php', 'w+' );
    2.         fwrite($file, '<?php' . PHP_EOL);
    3.         fwrite($file, '$hidden = ');
    4.         fwrite($file, var_export($ishidden, TRUE));
    5.         fwrite($file, ';' . PHP_EOL);
    6. fclose($file);
    7.  
    8. include '$id' . '.php'  
    Всякие кэши не стоят. Апач 2.4 с PHP 5.6 на Ubuntu. На винде такой проблемы нет.
    Пробывал:
    1. Удалять старый файл перед записью;
    2. touch();
    3. stream_set_write_buffer ();
    4. sleep(10);
    5. stream_set_blocking ();
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в одном скрипте за один раз и читаешь и пишешь и читаешь снова?
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    clearstatcache()
     
  4. m4a12345

    m4a12345 Новичок

    С нами с:
    24 янв 2016
    Сообщения:
    2
    Симпатии:
    0
    Да, ситуация с чтением, записью, и чтением снова.
    clearstatcache() не помогает. :(
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    случайно заметил что переменная $id в одинарных кавычках. эта строка так и остаётся бакс-ай-ди без замены на значение переменной.
    ну а кучу fwrite-ов обрамленную fopen-fclose можно заменить на один file_put_contents.