public function store($file, $content) { if (!isset($file) || $file == '' || !isset($content) || $content == '') { return false; } $file = absolutePath($this->_docRoot . '/' . $file); /*try {*/ if (!file_exists($file)) { $fh = fopen_recursive($file, 'w'); } else { if (!is_writable($file)) { throw new Exception(sprintf('file %s not writeable.', $file)); } else { $fh = fopen($file, 'w'); } } if (!$fh) { throw new Exception(sprintf('failed opening file %s.', $file)); } if (!flock($fh, LOCK_EX)) { throw new Exception(sprintf('failed obtaining write lock on file %s.', $file)); } fwrite($fh, $content); flock($fh, LOCK_UN); fclose($fh); /*} catch(Exception $e) { die($e->getMessage()); }*/ return true; }
} $wind = round($owind / $ocout * 1.15078); echo $wind . " MPH Average Windspeed<br>\n"; $rain = array_sum($matches[16]); echo $rain . " IN of Rain Recorded<br>\n"; $evap = round((($temp + $sun + $wind * 4) / 3 + (100 - $humid)) / 2 - $rain * 25); if ($evap < 0) { $evap = 0; } echo $evap . "% Evaporation Rate<br>\n"; $soon = $home . "soon.txt"; if (file_exists($soon) && time() - filemtime($soon) < 1800) { $lines = file($soon); } else { $file = file_get_contents("http://www.nws.noaa.gov/cgi-bin/mos/getmav.pl?sta=KSTL", false, $context); $cached = fopen_recursive($soon, "w"); fwrite($cached, $file); fclose($cached); $lines = file($soon); } echo "\n<br><b><a href='http://www.nws.noaa.gov/cgi-bin/mos/getmav.pl?sta=KSTL'>Next 3 Days</a></b><br><br>\n"; $sunl = 0; $rm = 0; $rx = 0; $prh = 0; foreach ($lines as $line_num => $line) { // if ($line_num > 4 && $line_num < 27) {echo "Line #{$line_num} : " . htmlspecialchars($line) . "\n";} if ($line_num == 6) { preg_match_all('/\\/([A-Z]+)\\s+(\\d+)/', $line, $dates); //print_r($dates); } else {
/** * Update the cached XML log file if necessary. * * @param includeDTD (Boolean) @c true= Embed the DOCTYPE specification in file. * * @return (Boolean) @c true= log was updated successfully (or didn't need updating). */ private function updateXmlLog($includeDTD = true) { if (!$this->mustUpdateXmlLog()) { return TRUE; } $logFile = fopen_recursive(self::XML_LOG_FILE, 'w+'); if (!$logFile) { throw new Exception('Failed opening master server log (XML)'); } // Obtain write lock. flock($logFile, 2); $numServers = is_array($this->servers) ? count($this->servers) : 0; $urlStr = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); fwrite($logFile, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); if ($includeDTD !== 0) { // Embed our DTD so that our server lists can be transported more easily. fwrite($logFile, "\n<!DOCTYPE masterserver [\n <!ELEMENT masterserver ((channel?),serverlist)>\n <!ELEMENT channel (generator,(generatorurl?),(pubdate?),(language?))>\n <!ELEMENT generator (#PCDATA)>\n <!ELEMENT generatorurl (#PCDATA)>\n <!ELEMENT pubdate (#PCDATA)>\n <!ELEMENT language (#PCDATA)>\n <!ELEMENT serverlist (server*)>\n <!ATTLIST serverlist size CDATA #REQUIRED>\n <!ELEMENT server (name,info,ip,port,open,version,gameinfo)>\n <!ATTLIST server host CDATA #REQUIRED>\n <!ELEMENT name (#PCDATA)>\n <!ELEMENT info (#PCDATA)>\n <!ELEMENT ip (#PCDATA)>\n <!ELEMENT port (#PCDATA)>\n <!ELEMENT open (#PCDATA)>\n <!ELEMENT version (#PCDATA)>\n <!ATTLIST version doomsday CDATA #REQUIRED>\n <!ATTLIST version game CDATA #REQUIRED>\n <!ELEMENT gameinfo (mode,iwad,(pwads?),setupstring,map,numplayers,maxplayers,(playernames?))>\n <!ELEMENT mode (#PCDATA)>\n <!ELEMENT iwad (#PCDATA)>\n <!ATTLIST iwad crc CDATA #REQUIRED>\n <!ELEMENT pwads (#PCDATA)>\n <!ELEMENT setupstring (#PCDATA)>\n <!ELEMENT map (#PCDATA)>\n <!ELEMENT numplayers (#PCDATA)>\n <!ELEMENT maxplayers (#PCDATA)>\n <!ELEMENT playernames (#PCDATA)>\n ]>"); } fwrite($logFile, "\n<masterserver>"); fwrite($logFile, "\n<channel>" . "\n<generator>" . ('Doomsday Engine Master Server ' . MasterServer::VERSION_MAJOR . '.' . MasterServer::VERSION_MINOR) . '</generator>' . "\n<generatorurl>" . $urlStr . '</generatorurl>' . "\n<pubdate>" . gmdate("D, d M Y H:i:s \\G\\M\\T") . '</pubdate>' . "\n<language>en</language>" . "\n</channel>"); fwrite($logFile, "\n<serverlist size=\"" . $numServers . '">'); foreach ($this->servers as $info) { if ($info['pwads'] !== '') { $pwadArr = array_filter(explode(";", $info['pwads'])); $pwadStr = implode(" ", $pwadArr); } else { $pwadStr = ""; } fwrite($logFile, "\n<server host=\"{$info['at']}:{$info['port']}\">" . "\n<name>" . $info['name'] . '</name>' . "\n<info>" . $info['info'] . '</info>' . "\n<ip>{$info['at']}</ip>" . "\n<port>{$info['port']}</port>" . "\n<open>" . ($info['open'] ? 'yes' : 'no') . '</open>' . "\n<version doomsday=\"{$info['ver']}\" game=\"{$info['game']}\"/>" . "\n<gameinfo>" . "\n<mode>{$info['mode']}</mode>" . "\n<iwad crc=\"" . dechex($info['wcrc']) . "\">{$info['iwad']}</iwad>" . ($info['pwads'] !== '' ? "\n<pwads>{$pwadStr}</pwads>" : '') . "\n<setupstring>{$info['setup']}</setupstring>" . "\n<map>{$info['map']}</map>" . "\n<numplayers>{$info['nump']}</numplayers>" . "\n<maxplayers>{$info['maxp']}</maxplayers>" . ($info['plrn'] !== '' ? "\n<playernames>{$info['plrn']}</playernames>" : '') . "\n</gameinfo>" . "\n</server>"); } fwrite($logFile, "\n</serverlist>"); fwrite($logFile, "\n</masterserver>"); flock($logFile, 3); fclose($logFile); return TRUE; }
public static function savefile($file, $conteudo = null, $new = false) { if (post("file_content", "h") || !is_null($conteudo)) { $conteudo = is_null($conteudo) ? post("file_content", "h") : $conteudo; if (Oraculum_Scaffolding::permissao($file) || $new) { $fp = fopen_recursive($file, "w"); fwrite($fp, $conteudo); fclose($fp); return true; } } return false; }