<?php #### $_SESSION['SEARCH'] # $_SESSION['LIVE'] # $_SESSION['CACHEFILENAME'] require_once ("/home/wwwroot/lib/config.inc.php"); require_once ("/home/wwwroot/lib/loadbalancing.inc.php"); function ReadCache( $CacheTypePath, $SqlQuery ){ #### LIVESUCHE START ###### # wenn livesuche, dann gib einen integer zur�ck, somit greift dann das caching nicht # livesuchee aber nur, wenn der current load nicht h�her alsLOADWHENLIVESEARCHISIGNORED if ( ( $_SESSION['LIVE'] == 1 ) && ( IsCurrentLoadHigher( LOADWHENLIVESEARCHISIGNORED ) == 0 ) ) { return -1; }; #### LIVESUCHE END ###### #################### ###### Read Cache #################### $Md5String = md5( strtolower($SqlQuery) ); # wandele sql oder query string in kleinbuchstaben um $CacheFile = $CacheTypePath . '/' . $Md5String; # /server/webcache/emule/MD5 $_SESSION['CACHEFILENAME'] = $CacheFile; # setzte den Namen des Cachefiles if ( file_exists($CacheFile) ) { $CACHETIMESTAMP = filemtime($CacheFile); $_SESSION['CACHETIMESTAMP'] = $CACHETIMESTAMP; # setze den timestamp, wann das file erstellt wurde $CacheValidTime = $CACHETIMESTAMP + ( WEBCACHELIFETIME * 3600 * 24 ); # filemtime= unixtimestamp, wann die datei das letzte mal ge�ndert wurde if ( $CacheValidTime >= time() ) { # cache g�ltig $ResultArray = file($CacheFile); # lese ins array $ResultArray den inhalt des $CacheFiles ein -> hoffentlich mit \n am ende jedes elementes # debug: print_r(file($CacheFile)); if ( count($ResultArray) >= 1 ){ # wenn mindestens 1 result gefunden wurde # echo "<h1><b>debug: CACHE HIT $CacheFile</b></h1>"; $_SESSION['ISTHISACACHE'] = 1; return $ResultArray; } else { # der cache enth�lt keine g�ltigen anzahl an ergebnissen @unlink($CacheFile); # fehlermeldungen unterdr�cken $_SESSION['ISTHISACACHE'] = 0; return -1; }; # if ( count($ResultArray) >= 1 ){ } else { # cache abgelaufen -> ABER X/Y -> l�sche datei $IsAllowedToUseOldCache = IsCurrentLoadHigher( OLDCACHEISALLOWEDTOUSEATTHISLOAD ); if ( $IsAllowedToUseOldCache == 1) { $ResultArray = file($CacheFile); $_SESSION['ISTHISACACHE'] = 1; return $ResultArray; } else { @unlink($CacheFile); # fehlermeldungen unterdr�cken $_SESSION['ISTHISACACHE'] = 0; return -1; }; # if ( $IsAllowedToUseOldCache == 1) { }; # if ( $CacheValidTime >= time() ) { }; # if (file_exists($CacheFile)) { # never reached $_SESSION['ISTHISACACHE'] = 0; return -1; #################### ###### Read Cache Ende #################### }; # function ReadCache( $CacheType, $SqlQuery ){ function WriteCache( $ResultArray ){ #################### ###### Write Cache #################### if ( strcasecmp($_SESSION['MAINCAT'], "emule") == 0 ) { $CachePath = WEBCACHEEMULE; } elseif ( strcasecmp($_SESSION['MAINCAT'], "bittorrent") == 0 || strcasecmp($_SESSION['MAINCAT'], "torrent") == 0 ) { $CachePath = WEBCACHETORRENT; } elseif ( strcasecmp($_SESSION['MAINCAT'], "rapidshare") == 0 ) { $CachePath = WEBCACHERAPIDSHARE; } elseif ( strcasecmp($_SESSION['MAINCAT'], "serial") == 0 || strcasecmp($_SESSION['MAINCAT'], "serials") == 0) { $CachePath = WEBCACHESERIALS; } elseif ( strcasecmp($_SESSION['MAINCAT'], "lyrics") == 0 || strcasecmp($_SESSION['MAINCAT'], "songtext") == 0) { $CachePath = WEBCACHESONGTEXT; } elseif ( strcasecmp($_SESSION['MAINCAT'], "usenet") == 0 ) { $CachePath = WEBCACHEUSENEXT; } elseif ( strcasecmp($_SESSION['MAINCAT'], "subtitle") == 0 || strcasecmp($_SESSION['MAINCAT'], "subtitles") == 0 || strcasecmp($_SESSION['MAINCAT'], "subtitel") == 0 || strcasecmp($_SESSION['MAINCAT'], "subtitels") == 0) { $CachePath = WEBCACHESUBTITLE; } else { $CachePath = WEBCACHEUSENEXT; }; # if ( strcasecmp($_SESSION['MAINCAT'], "emule") == 0 ) { $CacheRealFile = $CachePath . "/" . md5( $_SESSION['SEARCH'] ); if ( ( is_array($ResultArray) ) && ( count($ResultArray) >= 1 ) ){ $fh = fopen($CacheRealFile, 'wb'); flock($fh, LOCK_EX); # f�r jeden Eintrag des arrays, schreibe diesen Eintrag in die cache datei foreach ($ResultArray as $string) { $string = trim($string); # \n entfernen fwrite($fh,"$string\n" ); }; # foreach ($ResultArray as $string) { fclose($fh); }; # if ( is_array($ResultArray) ){ return 1; #################### ###### Write Cache Ende #################### }; # function WriteCache( $ResultArray ){ return 1; /* # �ffne cache datei und lese sie ein! $fh = fopen($CacheFile, 'r') or warn("Error!!"); flock($fh, LOCK_EX); while (!feof($fh)) { $ResultString .= fread($fh, 2048); }; # while (!feof($fh)) { fclose($fh); # teile die ergebnisse jetzt anhand \n auf und speichere sie in einem neuen Array mit \n foreach ( explode("\n", $ResultString) as $string) { array_push($ResultArray, "$string\n"); }; # foreach ( explode("\n", $ResultString) as $string) { return $ResultArray; */ ?>