private function update_news() { if (file_exists(guildnewsfeed::$cachefile)) { if (time() - guildnewsfeed::$updatetime * 60 < filemtime(guildnewsfeed::$cachefile)) { return; } } $fp = fopen(guildnewsfeed::$feedurl, "r"); $inul = 0; $inli = 0; $line = 0; $li = array(); while (!feof($fp)) { $input = fgets($fp); if (preg_match("/<ul class=\"activity-feed activity-feed-wide\">/", $input)) { $inul = 1; } if ($inul && preg_match("/<\\/ul>/", $input)) { $inul = 0; } if ($inul) { if (preg_match("/<li[^>]*>/", $input)) { $inli = 1; } if ($inli) { $li[$line] .= trim($input); } if ($inli && preg_match("/<\\/li>/", $input)) { $inli = 0; $line++; } } } fclose($fp); $fp = fopen(guildnewsfeed::$cachefile, "w"); foreach ($li as $x) { fwrite($fp, guildnewsfeed::process($x) . "\n"); } fclose($fp); }