コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: index.php プロジェクト: skeltonn/Garden
}
$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 {
コード例 #3
0
 /**
  * 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;
 }
コード例 #4
0
ファイル: scaffolding.php プロジェクト: patrix/oraculum
 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;
 }