Управление файлами cookie, которые используются для рекламы, таких как персонализация рекламы, ремаркетинг и анализ эффективности рекламы.
|
context.view
19.04.2021 12:15
0
|
Довольно часто возникают ошибки вида
2021-04-19 12:06:07 - PHP Warning: fopen(system/storage/cache/cache.store.1618826767): failed to open stream: No such file or directory in www/system/library/cache/file.php on line 28 2021-04-19 12:06:07 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in /www/system/library/cache/file.php on line 30 2021-04-19 12:06:07 - PHP Warning: fread() expects parameter 1 to be resource, boolean given in www/system/library/cache/file.php on line 32 2021-04-19 12:06:07 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in www/system/library/cache/file.php on line 34 2021-04-19 12:06:07 - PHP Warning: fclose() expects parameter 1 to be resource, boolean given in www/system/library/cache/file.php on line 36 люди в интернете говорят что это изза хостинга Суть в чем... скрипт кеша делает проверку - Есть ли такой файл кеша ФС хостера бодро рапортует (беря данные из своего кеша) - Да есть! Скрипт - Удаляю ФС хостера - Я обманула: нету его давно уже, я "думала" он есть Т е не правильно настроено кеширование ФС сервера, это баян у хостеров уже. Пользователи обращаются в тех. поддержку хостера и они исправляют. |
|
Artem.M
19.04.2021 16:52
0
|
|
|
avshop
18.12.2021 23:50
0
|
меня техподдержка отшила
отправили ссылку на какойто форум где все сводилось к неправильньым правам на папку.... хотя причина не в этом пришлось править скрипт ---------------------------- <?php // system/library/cache/file.php namespace Cache; class File { private $expire; public function __construct($expire = 7200) { $this->expire = $expire; /* // 0leksa 2021-12-18 прибрав звідси щоб не робити очищення застарілого кешу при кожному запиті сторінки і переніс до function get() $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } }*/ } public function get($key) { $files = []; $files2 = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); foreach ($files2 as $file) { // 0leksa 2021-12-18 $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } else $files[] = $file; } if (!empty($files)&&is_file($files[0])&&filesize($files[0])) { // 0leksa 2021-12-18 $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } public function set($key, $value) { $this->delete($key); $file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire); $handle = fopen($file, 'w'); flock($handle, LOCK_EX); fwrite($handle, json_encode($value)); fflush($handle); flock($handle, LOCK_UN); fclose($handle); } public function delete($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { foreach ($files as $file) { if (!@unlink($file)) { // 0leksa 2021-12-18 clearstatcache(false, $file); } } } } } |
|
rudenko
20.12.2021 13:03
1
|
Читаем первый абзац мануала по функции PHP clearstatcache:
> Для обеспечения большей производительности при использовании функций stat(), lstat() или любой другой функции, перечисленных в приведённом ниже списке, PHP кеширует результаты их выполнения. Обращаем внимание на фразу "PHP кеширует". Тут нет ничего про кеширование файловой системы или про настройки файловой системы. Кеширование - это встроенная функция PHP, которую хостер никак не может настроить. Выполнение clearstatcache() перед чтением решит вашу проблему. |
Тема закрыта.