Strange?!?
The advisory script running here:
------------ Test Script removed - its working again --------------------gets:
Warning: file(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /virtual/users/e14319-14509/web/station/advisory.php on line 45
Warning: file(http://www.crh.noaa.gov/showsigwx.php?warnzone=KYZ030&warncounty=KYC111): failed to open stream: Resource temporarily unavailable in /virtual/users/e14319-14509/web/station/advisory.php on line 45
Warning: implode(): Bad arguments. in /virtual/users/e14319-14509/web/station/advisory.php on line 45
However, the link in the "implode" line:
http://www.crh.noaa.gov/showsigwx.php?warnzone=KYZ030&warncounty=KYC111seems to work fine.
The code seems to be working fine on other weather sites as well (Carter Lake, etc.)
It is the vanilla version at Carter Lake's site:
<?php
// Force Defaults for Zone and County
if ( ! isset($_REQUEST['warnzone']) )
$_REQUEST['warnzone']="KYZ030";
if ( ! isset($_REQUEST['warncounty']) )
$_REQUEST['warncounty']="KYC111";
if ( ! isset($_REQUEST['warnlocal']) )
$_REQUEST['warnlocal']="Anchorage";
//You can pass data to this script with:
// http://www.carterlake.org/testadvisory.php?warnzone=IAZ069&warncounty=IAC155&warnlocal=Carter+Lake
//Where the zone is your zone and the county is your county and location is your location
//using pluses in place of spaces
$warnzone = $_REQUEST['warnzone'];
$warncounty = $_REQUEST['warncounty'];
$warnlocal = $_REQUEST['warnlocal'];
//import NOAA Advisory info
//data can be altered by changing the zone and county numbers
//Target data ends up in $targetwarn and $targettext[0]
$html = implode('', file("http://www.crh.noaa.gov/showsigwx.php?warnzone=${warnzone}&warncounty=${warncounty}"));
//Get the advisory headers and put them in an array
preg_match_all('|<h3>(.*)</h3>|', $html, $headers);
$warnheaders = $headers[1];
//Get the advisory text and put them into an array as well
preg_match_all('|<pre>(.*)</pre>|Uis', $html, $headers);
$warntext = $headers[1];
//If there is more than one advisory, we need to set its priority
if (count($warnheaders) >= 1) {
$i = 0;
$flag = 0;
//First, around here tornados are the biggest danger. A warning is critical information.
//Display this one first no matter what!
while ($i < count($warnheaders)):
if (preg_match("/Tornado Warning/i", $warnheaders[$i])) {
$targetwarn = $warnheaders[$i];
$targettext = $warntext[$i];
$targettext = explode("$$",$targettext);
$flag = 1;
break;
}
$i++;
endwhile;
//Next if there are none of the above found. Display the first warning message.
if ($flag == 0) {
$i = 0;
while ($i < count($warnheaders)):
if (preg_match("/Warning/i", $warnheaders[$i])) {
$targetwarn = $warnheaders[$i];
$targettext = $warntext[$i];
$targettext = explode("$$",$targettext);
$flag = 1;
break;
}
$i++;
endwhile;
}
//Next if there are none of the above found. Display the first watch message.
if ($flag == 0) {
$i = 0;
while ($i < count($warnheaders)):
if (preg_match("/Watch/i", $warnheaders[$i])) {
$targetwarn = $warnheaders[$i];
$targettext = $warntext[$i];
$targettext = explode("$$",$targettext);
$flag = 1;
break;
}
$i++;
endwhile;
}
//Next if there are none of the above found. Display the first advisory message.
if ($flag == 0) {
$i = 0;
while ($i < count($warnheaders)):
if (preg_match("/Advisory/i", $warnheaders[$i])) {
$targetwarn = $warnheaders[$i];
$targettext = $warntext[$i];
$targettext = explode("$$",$targettext);
$flag = 1;
break;
}
$i++;
endwhile;
}
//Next if there are none of the above found. Display the first statement message.
if ($flag == 0) {
$i = 0;
while ($i < count($warnheaders)):
if (preg_match("/Statement/i", $warnheaders[$i])) {
$targetwarn = $warnheaders[$i];
$targettext = $warntext[$i];
$targettext = explode("$$",$targettext);
$flag = 1;
break;
}
$i++;
endwhile;
}
//Next if there are none of the above found. Set the advisory to default message.
if ($targetwarn == "Hazardous Weather Outlook") {
$targetwarn = "NO CURRENT ADVISORIES";
$targettext[0] = "THERE ARE NO ACTIVE WATCHES, WARNINGS OR ADVISORIES";
} else if ($targetwarn == "No Active Hazardous Weather Conditions Found") {
$targetwarn = "NO CURRENT ADVISORIES";
$targettext[0] = "THERE ARE NO ACTIVE WATCHES, WARNINGS OR ADVISORIES";
} else if (empty($targetwarn)) {
$targetwarn = "NO CURRENT ADVISORIES";
$targettext[0] = "THERE ARE NO ACTIVE WATCHES, WARNINGS OR ADVISORIES";
} else if ($targetwarn == "Short Term Forecast") {
$targetwarn = "NO CURRENT ADVISORIES";
$targettext[0] = "THERE ARE NO ACTIVE WATCHES, WARNINGS OR ADVISORIES";
}
if ($targetwarn <> "NO CURRENT ADVISORIES") {
$warnlist = 'ALL CURRENT ADVISORIES:';
for ($i = 0; $i <= count($warnheaders); $i++) {
$warnheaderplus = preg_replace( '| |', '+', $warnheaders[$i] );
$warnlist = $warnlist . '<br><a href="http://www.crh.noaa.gov/showsigwx.php?warnzone=' . $warnzone. '&warncounty=' . $warncounty . '&local_place1=' . $warnlocal . '&product1=' . $warnheaderplus . '" target="_new">' . $warnheaders[$i] . '</a>';
}
}
}
echo "<b>";
echo $targetwarn;
echo "</b><br><br><pre>";
echo $targettext[0];
echo $warnlist;
echo "</pre>";
?>
I'm stumped?!?! Does anyone have any ideas? I'd like to keep using this script if possible, I've got the text colors, language, etc. tweaked to my liking