Revision: 5030
Updated Code
at March 6, 2008 08:09 by johnself
Updated Code
<?php $ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.weather.gov/alerts/wwarssget.php?zone=TNZ027'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); if(!empty($contents)) { $db = new SQLiteDatabase('noaa.db2'); /* $time = time(); $db->query("BEGIN; CREATE TABLE status ( id INTEGER PRIMARY KEY, timestamp ); INSERT INTO status (timestamp) VALUES($time); COMMIT;"); */ $result = $db->query('SELECT * FROM status WHERE id = 1 LIMIT 1',SQLITE_ASSOC); //SQLITE_NUM SQLITE_BOTH (Default) $data = $result->current(); //echo $data['timestamp']; $xml = new SimpleXMLElement($contents); foreach($xml->channel->item as $item) { if (strstr(trim($item->title),'Tornado Warning')) { if($data['timestamp'] < (time()-1800)) { // Set time in seconds between alerts $db->query("UPDATE status SET timestamp = ".time()." WHERE id = 1"); require("phpmailer/class.phpmailer.php"); //http://sourceforge.net/projects/phpmailer $mail = new PHPMailer(); $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xxxx"; // SMTP username $mail->Password = "xxxx"; // SMTP password $mail->SetLanguage("en",dirname(__FILE__) . "/phpmailer/language/"); $mail->From = "[email protected]"; $mail->FromName = "John Self"; $mail->AddAddress("[email protected]"); //$mail->AddAddress("[email protected]"); // Add as many recipients as you want $mail->IsHTML(false); $mail->Subject = "WEATHER ALERT"; $mail->Body = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; $mail->AltBody = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; if(!$mail->Send()) { echo "Message could not be sent. "; echo "Mailer Error: " . $mail->ErrorInfo; exit; } exit; } } } } ?>
Revision: 5029
Updated Code
at February 6, 2008 10:17 by johnself
Updated Code
<?php session_start(); $ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.weather.gov/alerts/wwarssget.php?zone=TNZ027'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); if(!empty($contents)) { $db = new SQLiteDatabase('noaa.db2'); /* $time = time(); $db->query("BEGIN; CREATE TABLE status ( id INTEGER PRIMARY KEY, timestamp ); INSERT INTO status (timestamp) VALUES($time); COMMIT;"); */ $result = $db->query('SELECT * FROM status WHERE id = 1 LIMIT 1',SQLITE_ASSOC); //SQLITE_NUM SQLITE_BOTH (Default) $data = $result->current(); //echo $data['timestamp']; $xml = new SimpleXMLElement($contents); foreach($xml->channel->item as $item) { if (strstr(trim($item->title),'Tornado Warning')) { if($data['timestamp'] < (time()-1800)) { // Set time in second between alerts $db->query("UPDATE status SET timestamp = ".time()." WHERE id = 1"); require("phpmailer/class.phpmailer.php"); //http://sourceforge.net/projects/phpmailer $mail = new PHPMailer(); $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xxxx"; // SMTP username $mail->Password = "xxxx"; // SMTP password $mail->SetLanguage("en",dirname(__FILE__) . "/phpmailer/language/"); $mail->From = "[email protected]"; $mail->FromName = "John Self"; $mail->AddAddress("[email protected]"); //$mail->AddAddress("[email protected]"); // Add as many recipients as you want $mail->IsHTML(false); $mail->Subject = "WEATHER ALERT"; $mail->Body = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; $mail->AltBody = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; if(!$mail->Send()) { echo "Message could not be sent. "; echo "Mailer Error: " . $mail->ErrorInfo; exit; } exit; } } } } ?>
Revision: 5028
Updated Code
at February 6, 2008 10:09 by johnself
Updated Code
<?php session_start(); $ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.weather.gov/alerts/wwarssget.php?zone=TNZ027'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); if(!empty($contents)) { $db = new SQLiteDatabase('noaa.db2'); /* $db->query("BEGIN; CREATE TABLE status ( id INTEGER PRIMARY KEY, timestamp ); INSERT INTO status (timestamp) VALUES($time); COMMIT;"); */ $result = $db->query('SELECT * FROM status WHERE id = 1 LIMIT 1',SQLITE_ASSOC); //SQLITE_NUM SQLITE_BOTH (Default) $data = $result->current(); //echo $data['timestamp']; $xml = new SimpleXMLElement($contents); foreach($xml->channel->item as $item) { if (strstr(trim($item->title),'Tornado Warning')) { if($data['timestamp'] < (time()-1800)) { // Set time in second between alerts $db->query("UPDATE status SET timestamp = ".time()." WHERE id = 1"); require("phpmailer/class.phpmailer.php"); //http://sourceforge.net/projects/phpmailer $mail = new PHPMailer(); $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xxxx"; // SMTP username $mail->Password = "xxxx"; // SMTP password $mail->SetLanguage("en",dirname(__FILE__) . "/phpmailer/language/"); $mail->From = "[email protected]"; $mail->FromName = "John Self"; $mail->AddAddress("[email protected]"); //$mail->AddAddress("[email protected]"); // Add as many recipients as you want $mail->IsHTML(false); $mail->Subject = "WEATHER ALERT"; $mail->Body = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; $mail->AltBody = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; if(!$mail->Send()) { echo "Message could not be sent. "; echo "Mailer Error: " . $mail->ErrorInfo; exit; } exit; } } } } ?>
Revision: 5027
Updated Code
at February 6, 2008 09:34 by johnself
Updated Code
<?php session_start(); $ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.weather.gov/alerts/wwarssget.php?zone=TNZ027'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); if(!empty($contents)) { $db = new SQLiteDatabase('noaa.db2'); /* $db->query("BEGIN; CREATE TABLE status ( id INTEGER PRIMARY KEY, timestamp ); INSERT INTO status (timestamp) VALUES($time); COMMIT;"); */ $result = $db->query('SELECT * FROM status WHERE id = 1 LIMIT 1',SQLITE_ASSOC); //SQLITE_NUM SQLITE_BOTH (Default) $data = $result->current(); //echo $data['timestamp']; $xml = new SimpleXMLElement($contents); foreach($xml->channel->item as $item) { if (strstr(trim($item->title),'Tornado Warning')) { if($data['timestamp'] < (time()-1800)) { // Set time in second between alerts $db->query("UPDATE status SET timestamp = ".time()." WHERE id = 1"); require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xxxx"; // SMTP username $mail->Password = "xxxx"; // SMTP password $mail->SetLanguage("en",dirname(__FILE__) . "/phpmailer/language/"); $mail->From = "[email protected]"; $mail->FromName = "John Self"; $mail->AddAddress("[email protected]"); //$mail->AddAddress("[email protected]"); // Add as many recipients as you want $mail->IsHTML(false); $mail->Subject = "WEATHER ALERT"; $mail->Body = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; $mail->AltBody = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; if(!$mail->Send()) { echo "Message could not be sent. "; echo "Mailer Error: " . $mail->ErrorInfo; exit; } exit; } } } } ?>
Revision: 5026
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 6, 2008 09:33 by johnself
Initial Code
<?php session_start(); $ch = curl_init(); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.weather.gov/alerts/wwarssget.php?zone=TNZ027'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); if(!empty($contents)) { $db = new SQLiteDatabase('noaa.db2'); /* $db->query("BEGIN; CREATE TABLE status ( id INTEGER PRIMARY KEY, timestamp ); INSERT INTO status (timestamp) VALUES($time); COMMIT;"); */ $result = $db->query('SELECT * FROM status WHERE id = 1 LIMIT 1',SQLITE_ASSOC); //SQLITE_NUM SQLITE_BOTH (Default) $data = $result->current(); //echo $data['timestamp']; $xml = new SimpleXMLElement($contents); foreach($xml->channel->item as $item) { if (strstr(trim($item->title),'Tornado Warning')) { if($data['timestamp'] < (time()-1800)) { // Set time in second between alerts $db->query("UPDATE status SET timestamp = ".time()." WHERE id = 1"); require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsSMTP(); // set mailer to use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "xxxx"; // SMTP username $mail->Password = "xxxx"; // SMTP password $mail->SetLanguage("en",dirname(__FILE__) . "/phpmailer/language/"); $mail->From = "[email protected]"; $mail->FromName = "John Self"; $mail->AddAddress("[email protected]"); //$mail->AddAddress("[email protected]"); $mail->IsHTML(false); $mail->Subject = "WEATHER ALERT"; $mail->Body = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; $mail->AltBody = "A TORNADO WARNING HAS BEEN ISSUED FOR DAVIDSON COUNTY"; if(!$mail->Send()) { echo "Message could not be sent. "; echo "Mailer Error: " . $mail->ErrorInfo; exit; } exit; } } } } ?>
Initial URL
Initial Description
In light of last nights tornado warnings here in TN, I thought it appropriate to post this little bit of code that I use to alert myself and others of dangerous weather conditions via SMS/Email alerts. I run this through cron at Dreamhost without issues.
Initial Title
SMS/Email Weather Alert
Initial Tags
curl, php
Initial Language
PHP