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