[Aminet-commit] r130 - trunk/phpinclude/include
aminet-discuss at aminet.net
aminet-discuss at aminet.net
Thu Apr 10 02:57:54 CEST 2008
Author: mendoza
Date: 2008-04-09 17:57:54 -0700 (Wed, 09 Apr 2008)
New Revision: 130
Modified:
trunk/phpinclude/include/search.php
Log:
Adding caching in searches
Modified: trunk/phpinclude/include/search.php
===================================================================
--- trunk/phpinclude/include/search.php 2008-04-10 00:57:27 UTC (rev 129)
+++ trunk/phpinclude/include/search.php 2008-04-10 00:57:54 UTC (rev 130)
@@ -4,8 +4,17 @@
# $page = "Search";
+$cachetime = 60 * 50;
+
+function cachefile_hash($_SEARCH) {
+ global $amirepo_root;
+ $cachedir = $amirepo_root . '/cache';
+ $cachefile = $cachedir . '/' . md5(var_export($_SEARCH,true));
+ return $cachefile;
+}
+
function do_search($_SEARCH,$search_form=0) {
- global $myurl,$sort_url,$format;
+ global $myurl,$sort_url,$format,$cachetime;
!isset($_SEARCH['arch'])?$_SEARCH['arch']="":"";
!isset($_SEARCH['sort'])?$_SEARCH['sort']="":"";
@@ -29,6 +38,21 @@
!isset($_SEARCH['date'])?$_SEARCH['date']="":"";
!isset($_SEARCH['format'])?$_SEARCH['format']="":"";
+ $cachefile = cachefile_hash($_SEARCH);
+ if (file_exists($cachefile) ) {
+ $stat = stat($cachefile);
+ aminet_log("found cache file: $cachefile");
+ if ($stat[9] > (time() - $cachetime)
+ || ( file_exists("$cachefile.lock") && $stat[9] > (time() - $cachetime * 2) ) ) {
+ aminet_log("fetching from cachefile: $cachefile (".$_SERVER['REQUEST_URI'].")");
+ return file_get_contents($cachefile);
+ }
+ aminet_log("$cachefile too old (".$_SERVER['REQUEST_URI'].")");
+ }
+
+ aminet_log("didn't find cachefile: $cachefile (".$_SERVER['REQUEST_URI'].")");
+ touch("$cachefile.lock");
+
$result = "";
$mtime = microtime();
@@ -390,6 +414,8 @@
$endtime = $mtime;
$totaltime = ($endtime - $starttime);
$result .= sprintf("<br><br><div align=\"center\">Search finished in %f seconds</div>", $totaltime);
+ file_put_contents($cachefile, $result);
+ unlink("$cachefile.lock");
return $result;
}
@@ -491,7 +517,7 @@
} else {
$indexurl = $myurl."&start=".($i*$amount);
}
- $num = "<a href=\"/search?$indexurl\">".($i+1)."</a>";
+ $num = "<a rel=\"nofollow\" href=\"/search?$indexurl\">".($i+1)."</a>";
}
array_push($array,$num);
More information about the Aminet-commit
mailing list