Каждый раз, когда кто-то приземляется на моей странице list.php?id=xxxxx он запрашивает некоторые запросы MySQL, чтобы вернуть это: 
 $ids = array(..,..,..); // not big array - not longer then 50 number records $thumbs = array(..,..,..); // not big array - not longer then 50 text records $artdesc = "some text not very long"; // text field 
  Поскольку база данных, из которой я делаю запросы, довольно велика, я хотел бы кэшировать эти результаты в течение 24 часов в файле, например: xxxxx.php в xxxxx.php / cache /, поэтому я могу использовать его в include("xxxxx.php") если он присутствует.  (или txt-файлы!? или любым другим способом) 
Поскольку есть очень простые данные, я считаю, что это можно сделать, используя несколько строк PHP, и не нужно использовать memcached или другие профессиональные объекты.
Becasuse мой PHP очень ограниченный может кто-то просто разместить основные строки PHP (или код) для этой задачи?
Я действительно был бы очень благодарен!
Кэширование массива PHP довольно просто:
 file_put_contents($path, '<?php return '.var_export($my_array,true).';?>'); 
Затем вы можете прочитать его обратно:
 if (file_exists($path)) $my_array = include($path); 
Вы также можете посмотреть в ADOdb , который обеспечивает кэширование внутри.
Попробуйте использовать сериализацию;
  Предположим, вы получаете свои данные в двух массивах $array1 и $array2 .  Теперь вам нужно сохранить эти массивы в файле.  Хранение строки (третья переменная в вашем вопросе) в файл легко, но для хранения массива вам нужно сначала преобразовать его в строку. 
 $string_of_array1 = serialize( $array1 ); $string_of_array2 = serialize( $array2 ); 
Следующая проблема – это именование файлов кеша, чтобы вы могли легко проверить, доступен ли соответствующий массив в кеше. Лучший способ сделать это – создать хеш MD5 вашего запроса mysql и использовать его как имя файла кэша.
 $cache_dir = '/path/cache/'; $query1 = 'SELECT many , fields FROM first_table INNER JOIN another_table ...'; $cache1_filename = md5( $query1 ); if( file_exists( $cache_dir . $cache1_filename ) ) { if( filemtime( $cache_dir . $cache1_filename ) > ( time( ) - 60 * 60 * 24 ) ) { $array1 = unserialize( file_get_contents( $cache_dir . $cache1_filename ) ); } } if( !isset( $array1 ) ) { $array1 = run_mysql_query( $query1 ); file_put_contents( serialize( $array1 ) ); } 
Повторите вышеуказанное с другим массивом, который должен быть сохранен в отдельном файле с MD5 второго запроса, используемого как имя второго файла кеша.
В конце концов, вам нужно решить, как долго ваш кеш останется в силе. Для этого же запроса в таблице mysql могут быть изменены записи, которые могут привести к устареванию кеша файловой системы. Таким образом, вы не можете просто полагаться на уникальные имена файлов для уникальных запросов.
Важный:
Просто напишите новый файл с именем $ _GET ['id'] и содержимым материала, который вы хотите кэшировать, и каждый раз проверяйте, существует ли этот файл, иначе создайте его. Что-то вроде этого:
 $id = $_GET['id'] if (file_exists('/a/dir/' . $id)) { $data = file_get_contents('/a/dir/' . $id); } else { //do mysql query, set data to result $handle = fopen('/a/dir/' . $id, 'w+'); fwrite($handle, $data); fclose($handle); }