PDA

View Full Version : Active Topics - Call From Cache File


09-11-2000, 07:27 PM
Hello,

Wanderer had been helping me this afternoon to optimize the active topics script. He had stated that if we could have it read from a cache file and every 15 minutes reset the cache file it would save on MySQL load.

So he gave me this cache script, and told me to take out the parts uneeded and replace it with the active.php script.

Can someone help me to do this?

Here is the cache script:

<?php


# Public Methods:
# harvest($filename) Wrapper for _harvest()
# $filename This is the initial filename/URL to start scanning
#
# Private Methods:
# _harvest($filename, $depth, $as_text)
# Actual search routine
# $filename As above.
# $depth Depth of documents to search (see public vars, below)
# $as_text Determines how to search $filename (see public vars)
#
# _is_schema($string) Returns TRUE if a valid schema is found at the head
# of string (whitespace characters not permitted).
#

# include ("/www/php/link-harvest.php3" );
$cache_file = "/tmp/mycachedfile.cache";
$cache_time = 5400;
srand((double)microtime()*1000000);
$cache_time_rnd = 300 - rand(0, 600);
$time = split(" ", microtime());

if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) {

$mywebmylink = new link_harvester;
$mywebmylink->harvest("http://www.mywebsite.com/discussion/index.php3");

# $numlinks = count($mywebmylink->links);
*
# print "There are $numlinks links on the webpage ";

$fpwrite = fopen($cache_file, 'w');

# print "<ul>";

print "<b><font size=\"1\" color=\"#000000\">Last Updated: " . date("l h:i A", filectime($cache_file)) . "</font></b><br>";

for ($counter=0; $counter <=12; $counter++) {


if (strlen($mywebmylink->titles[$counter])>90) {

$shorttitles=substr($mywebmylink->titles[$counter],0,89);
$shorttitles .= "...";

} else {

$shorttitles=$mywebmylink->titles[$counter];

}

if (strlen($mywebmylink->titles[$counter])<1) {

# print "no topic";

} else {

$line = "<li><a href=\"http://www.mywebmold.com/chatter/";
$line .= $mywebmylink->links[$counter];
$line .= "\">";
$line .= $shorttitles;
$line .= "</a></li>";

fputs($fpwrite, $line);

print $line;

}

}

# print "</ul>";

fclose($fpwrite);
return;
}

$mywebmylink = new link_harvester;
$mywebmylink->_harvest("$cache_file",0,0);

$numlinks = count($mywebmylink->links);
$time = split(" ", microtime());

print "<b><font size=\"1\" color=\"#000000\">Last Updated: " . date("l h:i A", filectime($cache_file)) . "</font></b><br>";

for ($counter=0; $counter <=12; $counter++) {

if (strlen($mywebmylink->titles[$counter])>90) {

$shorttitles=substr($mywebmylink->titles[$counter],0,89);
$shorttitles .= "...";

} else {

$shorttitles=$mywebmylink->titles[$counter];

}

if (strlen($mywebmylink->titles[$counter])<1) {

# print "no topic";

} else {

$line = "<li><a href=\"";
$line .= $mywebmylink->links[$counter];
$line .= "\">";
$line .= $shorttitles;
$line .= "</a></li>";

print $line;

}
}

?>


and here is my active.php from EVA2000:

<?
require("admin/config.php");
$num_active = 10;
$num_chars = 95;

$db=mysql_connect($servername,$dbusername,$dbpassw ord);
mysql_select_db($dbname);

$querylatest="select * from thread where forumid='1' or forumid='2' or forumid='3' or forumid='4' or forumid='5' or forumid='6' or forumid='7' or forumid='8' or forumid='9' or forumid='10' or forumid='11' or forumid='12' or forumid='13' or forumid='14' or forumid='15' or forumid='16' or forumid='17' or forumid='18' or forumid='19' or forumid='20' or forumid='22' or forumid='23' or forumid='25' or forumid='26' or forumid='27' or forumid='28' or forumid='32' or forumid='34' or forumid='35' or forumid='36' or forumid='37' or forumid='38' or forumid='39' or forumid='40' or forumid='41' or forumid='42' or forumid='43' order by lastpost desc limit $num_active";
$resultlatest = mysql_query($querylatest,$db);

print("<center><table width=\"100%%\" cellspacing=\"0\" cellpadding=\"2\">");

while ($latest_array = mysql_fetch_array($resultlatest)) {

// Get Forum Infomation
$query_forum = "select * from forum where forumid='$latest_array[forumid]' limit 1";
$result_forum = mysql_query($query_forum,$db);
$forum_info_array = mysql_fetch_array($result_forum);

printf("<tr><td colspan=\"2\" bgcolor=\"#87A4C2\"><b><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">%s: %s</font></b></td></tr>",$forum_info_array["title"],$latest_array["title"]);

// split the date up a bit
$datestr1 = substr($latest_array["dateline"],0,10);
$datetime = substr($latest_array["dateline"],11,8);
printf ("<tr valign=\"top\"><td width=\"15%%\" bgcolor=\"#B9B9B9\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>%s</b><br>Updated: %s<br>Replies: %s</font></td>", $latest_array["postusername"], $datetime, $latest_array["replycount"]);

$querythread="select * from post where threadid='$latest_array[threadid]' order by dateline asc limit 1";

$result_thread_text= mysql_query($querythread,$db);

$result_thread_array = mysql_fetch_array($result_thread_text);
printf ("<td width=\"85%%\" bgcolor=\"#cccccc\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><img src=\"http://forums.paintballcity.com/images/icons/icon%s.gif\"> Last Post By: %s<hr>%s...<br><a href=\"http://forums.paintballcity.com/showthread.php?threadid=%s\">Click here for more</font></td></tr>",$result_thread_array["iconid"],$latest_array["lastposter"],substr(strip_tags($result_thread_array["pagetext"]),0,$num_chars),$latest_array["threadid"]);
printf ("<tr><td colspan=\"2\" width=\"100%%\"> </td></tr>");
}

printf ("</table></center>");
?>