{"id":18,"date":"2008-06-27T18:34:01","date_gmt":"2008-06-27T18:34:01","guid":{"rendered":"http:\/\/www.apmuga.com\/wordpress\/?p=18"},"modified":"2015-06-13T09:41:03","modified_gmt":"2015-06-13T09:41:03","slug":"criar-um-mecanismo-de-cache-em-php","status":"publish","type":"post","link":"https:\/\/www.apmuga.com\/wordpress\/criar-um-mecanismo-de-cache-em-php\/","title":{"rendered":"Criar um mecanismo de cache em PHP"},"content":{"rendered":"<p>Tentar optimizar um script lento nunca \u00e9 tarefa de 5 minutos. Quando o script n\u00e3o tem formul\u00e1rios, nem os dados s\u00e3o actualizados com muita frequ\u00eancia, podemos usar um mecanismo de cache. Este script assume que existe uma directoria &#8220;<strong>cache<\/strong>&#8221; com permiss\u00f5es de escrita para o PHP.<\/p>\n<p>S\u00e3o criados ficheiros com base nos argumentos do pedido, permitindo uma maior versatibilidades de execu\u00e7\u00e3o.<\/p>\n<pre>&lt;?\r\n\/\/******************************************************************************\r\n\/\/******************************************************************************\r\n\u00a0\r\n$lv_strFile = $_SERVER[\"QUERY_STRING\"];\r\n$lv_strFile = str_replace(\"&amp;\",\"_\",$lv_strFile);\r\n$lv_strFile = str_replace(\"+\",\"_\",$lv_strFile);\r\n$lv_strFile = str_replace(\"\/\",\"_\",$lv_strFile);\r\n$lv_strFileCached = \"cache\/\".$lv_strFile .\".html\";\r\n$lv_intUserCache = 0;\r\n$lv_strContents = \"\";\r\nif (($lv_intUserCache == 1)&amp;&amp;(file_exists($lv_strFileCached)))\r\n{<\/pre>\n<pre>\u00a0 $lv_intFileHandle = fopen($lv_strFileCached, \"r\");\r\n\u00a0 $lv_strContents = fread($lv_intFileHandle, filesize($lv_strFileCached));\r\n\u00a0 fclose($lv_intFileHandle);<\/pre>\n<pre>}\r\nelse\r\n{\u00a0\r\n\u00a0 ob_start();\r\n\/\/******************************************************************************\r\n\/\/******************************************************************************<\/pre>\n<pre>\/\/c\u00f3digo... Muito c\u00f3digo<\/pre>\n<pre>\/\/******************************************************************************\r\n\/\/******************************************************************************\r\n\u00a0\r\n\u00a0 $lv_strContents = ob_get_contents();\r\n\u00a0 echo $lv_strContents;\r\n\u00a0 ob_end_clean();\r\n\u00a0 $lv_intFileHandle = fopen($lv_strFileCached, \"w\") or die(\"can\u2019t open file\");\r\n\u00a0 fwrite($lv_intFileHandle, $lv_strContents);\r\n\u00a0 fclose($lv_intFileHandle);\r\n\u00a0\r\n}\r\n\/\/******************************************************************************\r\n\/\/******************************************************************************\r\n?&gt;<\/pre>\n<p>Podemos inclusiva acrescentar um validador de tempo para verificar se necessitamos de refrescar o conteudo do ficheiro. Mas isso fica na vossa imagina\u00e7\u00e3o.<\/p>\n<p>APM<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tentar optimizar um script lento nunca \u00e9 tarefa de 5 minutos. Quando o script n\u00e3o tem formul\u00e1rios, nem os dados s\u00e3o actualizados com muita frequ\u00eancia, podemos usar um mecanismo de cache. Este script assume que existe uma directoria &#8220;cache&#8221; com permiss\u00f5es de escrita para o PHP. S\u00e3o criados ficheiros com base nos argumentos do pedido, [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[30],"_links":{"self":[{"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/posts\/18"}],"collection":[{"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":1,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":255,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/posts\/18\/revisions\/255"}],"wp:attachment":[{"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.apmuga.com\/wordpress\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}