Page 1 of 1

Help with an error I can't fix

Posted: Sat Oct 13, 2007 3:09 pm
by webstar
scottayy | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Ok I will first say I know very very very little php and this is confusing me. This script was made for me and worked until this year and I can't figure it out.

It reads from this page. http://www.mto.gov.on.ca/english/travel ... losure.htm  and pretty much need to reads just the parts between. 
<!-- TemplateBeginEditable name="content" --> and </DIV> on the HTML below.  Problem is this year it started doing this.

Code: Select all

Reading "http://www.mto.gov.on.ca/english/traveller/conditions/rdclosure.htm". Searching for "
"..."
". Searching for "". Number of current events = 1 Number of old events = 0 
Fatal error: Cannot use string offset as an array in C:\WEATHERSCRIPTS\mto\test\roadclosed.php on line 44

And they changed the webpage and I can't figure out how to fix it. I've been trying to for 4 days now when I get time off work. I figure it is something really easy but not knowing PHP it isn't going to be easy for me to find.

I've tried changing the part of the code but with no luck either. I hope someone can help.

CHANGES I HAVE TRIED

Code: Select all

$content = find_data($webpage, "TemplateBeginEditable name=\"content\"", "</DIV>");  // All content is in the <DIV></DIV>
$content = find_data($content, "<TABLE BORDER", "</TABLE>");     // Look for the events HTML table

PHP SCRIPT(with the emails removed)

Code: Select all

<?php
// Declare variables //
$debug = true;
$url = "http://www.mto.gov.on.ca/english/traveller/conditions/rdclosure.htm";
//$url = "./roadclosed1/rdclosure.htm";
#$email_recip = "email1";
$email_recip = "email2";
#$email_subject = MOVED TO LINE 47
$email_from = "WxServer Roads";
$email_from_addr = "Email3";
$message_header = "\n====START====\n";
$message_footer = "\n\n http://www.mto.gov.on.ca/english/travel ... losure.htm";
$eventfilename = "roadclosed.txt";

// DON'T EDIT PAST HERE UNLESS YOU KNOW WHAT YOU'RE DOING //
// MAIN PROGRAM ///
$webpage = read_web($url);
$content = find_data($webpage, "<DIV>", "</DIV>");  // All content is in the <DIV></DIV>
$content = find_data($content, "<TABLE BORDER", "</TABLE>");     // Look for the events HTML table
$curr_events = read_html_table($content,true);       // Parse the events HTML table
$old_content = read_events_file();            // Read the old events HTML table
if ($old_content) {
  $old_events = read_html_table($old_content, true);    // Parse the old events HTML table
} else {
  unset($old_events);
}
if ($debug) { print("Number of current events = " . count($curr_events) . "\n"); }
if ($debug) { print("Number of old events = " . count($old_events) . "\n"); }

//Go through the current events and look for a corrisponding old event
$send_email = false;     // Flag used to see if an email should be sent for new closure events
$event_message = $message_header;
for ($curr_event_num = 0; $curr_event_num < count($curr_events); $curr_event_num++) {
  $curr_event_found = false;
  for ($old_event_num = 0; $old_event_num < count($old_events); $old_event_num++) {
    if ($debug) { print("Comparing (" . $curr_events[$curr_event_num][0] . "?" . $old_events[$old_event_num][0] . ") & (" . $curr_events[$curr_event_num][1] . "?" . $old_events[$old_event_num][1] . ") & (" . $curr_events[$curr_event_num][2] . "?" . $old_events[$old_event_num][2] . ")\n"); }
    if (($curr_events[$curr_event_num][0] == $old_events[$old_event_num][0]) && ($curr_events[$curr_event_num][1] == $old_events[$old_event_num][1]) && ($curr_events[$curr_event_num][2] == $old_events[$old_event_num][2])) {
      // Found a matching event
      $curr_event_found = true;
    }
  }
  if (!$curr_event_found) {    // Add the not found current event to the message
     $send_email = true;
     if ($debug) { print ("Found a new event: \nRegion: " . $curr_events[$curr_event_num][1] . " \nHighway(s): " . $curr_events[$curr_event_num][0] . " \nReason: " . $curr_events[$curr_event_num][2] . "\n=====END=====\n"); }
//     $event_message .= ">>> NEW <<<\n";
     $event_message .= "Region: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n====END====\n";
     $email_subject .= " Hwy: " . $curr_events[$curr_event_num][0];
 
  } else {
//    if ($debug) { print ("Found a previously sent event:\nRegion: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n====END====\n"); }
//    $event_message .= "Region: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n====END====\n";

 }
}
$event_message .= $message_footer;




//Send an email if there is a new event
//Send an email if there is a new event 
if ($send_email and !preg_match('/there\s*are\s*no\s*reported\s*closures/i', $event_message)) { 
print ("Sending the message below to " . $email_recip . ", from \"" . $email_from . "\" <" .$email_from_addr . ">.\n" . $event_message . "\n");
  mail ($email_recip, $email_subject, $event_message, "From: \"" . $email_from . "\" <" .$email_from_addr . ">");
  print ("Found a new event:\nRegion: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n==========\n");
}


//Save the events to check the next time the script is run
write_events_file($content);

// Functions //
//read_web - Read the web page
//           $strURL ==> URL of the webpage
function read_web($strURL)
{
  global $debug;
  $buffer = "";
  if($debug){ print("Reading \"$strURL\".\n"); }
  $fh = fopen($strURL, "rb");
  if ($fh === false) {
    return "";
  }
  while (!feof($fh)) {
    $buffer .= fread($fh, 1024);
  }
  fclose($fh);
  return $buffer;
} // end function read_web

// find)data - Gets a substring of the webpage by scraping the data
//             $strFile ==> text of the webpage
//             $strStart_Pattern ==> start of the substring
//             $strEnd_Pattern ==> end of the substring
function find_data($strFile,$strStart_Pattern,$strEnd_Pattern, $intStart_Position = 0)
{
  global $debug;
  if($debug){ print("Searching for \"$strStart_Pattern\"...\"$strEnd_Pattern\".\n"); }
  $first_match = strpos($strFile,$strStart_Pattern, $intStart_Position);
  if ($first_match) {
    # find the begining of the tag
    for ($i = $first_match; $i>0;$i--) {
      $char = $strFile[$i];
      if ($char == "<" ) {
        $first_match = $i; //record the location of the tag
        break;
      }
    }
    $partialbuffer = substr($strFile,$first_match,strlen($strFile) - $first_match);
    # find the end of the sub string
    $second_match = strpos($partialbuffer,$strEnd_Pattern);
    return substr($partialbuffer,0,$second_match + strlen($strEnd_Pattern));
  } else {
    return(false);
  }
} //end function find_data

// read_html_table - Read the contents of an HTML table and return the array(s)
//                   strHTMLTable ==> HTML table text
//                   boolSkipFirstRow ==> Skip the first row if it contains column titles (true/false)
function read_html_table($strHTMLTable, $boolSkipFirstRow)
{
  global $debug;
  $table = "";
  $th = "";
  $td = "";
  if($boolSkipFirstRow) {
    $rownum = -2;
  } else {
    $rownum = -1;
  }
  $rowopen = false;
  $strPos = 0;
  do {    // Scrape through the table
    if (strtoupper(substr($strHTMLTable, $strPos, 3)) == "<TR") {  //Look for the rows
      $strPos +=3;
      $strPos = strpos($strHTMLTable, ">", $strPos) + 1;       // Find the end of the row open tag
      $rowopen = true;
      $rownum++;
    }
    if (strtoupper(substr($strHTMLTable, $strPos, 5)) == "</TR>") {
      $rowopen = false;
      $strPos += 5;    // jump to the end of the close tag
    }
    if (strtoupper(substr($strHTMLTable, $strPos, 3)) == "<TH") { // Look for headers
      $strPos += 3;
      $strPos = strpos($strHTMLTable, ">", $strPos) + 1;       // Find the end of the header open tag
      $endPos = strpos(strtoupper($strHTMLTable), "</TH>", $strPos);   // Find the header close tag
      $th[] = substr($strHTMLTable, $strPos, $endPos - $strPos);
      $strPos = $endPos + 5;
      if($debug) { print("Found column header \"" . end($th) . "\" (" . (count($th) - 1) . ")\n"); }
    }
    if (strtoupper(substr($strHTMLTable, $strPos, 3)) == "<TD") { // Look for cells
      $strPos += 3;
      $strPos = strpos($strHTMLTable, ">", $strPos) + 1;       // Find the end of the cell open tag
      $endPos = strpos(strtoupper($strHTMLTable), "</TD>", $strPos);   // Find the cell close tag
      $td[$rownum][] = str_replace(array("\n","\t")," ",substr($strHTMLTable, $strPos, $endPos - $strPos));
      $td[$rownum][count($td[$rownum]) - 1] = str_replace("\r"," ",$td[$rownum][count($td[$rownum]) - 1]);
      $td[$rownum][count($td[$rownum]) - 1] = preg_replace("/[\s]+/"," ",$td[$rownum][count($td[$rownum]) - 1]);
      $strPos = $endPos + 5;
      if($debug) { print("Found cell data \"" . end($td[$rownum]) . "\" (" . $rownum . "|" . (count($td[$rownum]) - 1) . ")\n"); }
    }
    $strPos++;
  } while ($strPos <= strlen($strHTMLTable));
  return $td;
  /*
  if ($boolRowOneColumnTitles) {
    if ($th[0] != "") {        // Create a new array that uses the headers as the array key
      $newtd = "";
      $header = "";
      $row = "";
      if ($debug) { print(count($th) . " headers\n"); }
      if ($debug) { print(count($td) . " rows\n"); }
      for ($row = 0; $row <= count($td) - 1; $row++) {
        for ($cell = 0; $cell <= count($td[$row]) - 1; $cell++) {
          if ($debug) { print("(". $row . "|" . $cell . ") => " . $th[$cell] . "(" . $row . ") = " . $td[$row][$cell] . "\n"); }
          $newtd[$th[$cell]][$cell] = $td[$row][$cell];
        }
      }
      return $newtd;
    } else {  // There are no headers, so just return the td array.
      return $td;
    }
  } else {  // Just return what's in the td array
    return $td;
  }
  */
} //end function readhtmltable

// read_events_file - Reads the old events from event file
function read_events_file()
{
  global $debug;
  $eventfile = "roadclosed.txt";
  $buffer = "";
  if (is_file($eventfile)) {	// Check to see if the event log exists
    $fh = fopen($eventfile, "r");
    while (!feof($fh)) {
      $buffer .= fread($fh, 1024);
    }
    return $buffer;
  }
  return;   // Return an empty array
}  // end function read_events_file

// write_events_file - Writes the current events to a file to be read later
//                   - strEvents ==> array of events
function write_events_file($strEvents)
{
  global $debug;
  $eventfile = "roadclosed.txt";
  $fh = fopen($eventfile, "w");
  if ($fh === false) {
    if ($debug) { print("ERROR: Could not write to \"" . $eventfile . "\"!\n"); }
  } else {
    fwrite ($fh, $strEvents);
    fclose ($fh);
  }
  return;
}  // end function write_events_file

print ("ClosedRoadScript");
print date("     (G:i:s)");
?>
HTML SOURCE OF WEBPAGE WITH AN ACTIVE ALERT

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hmpro6.dtd">
<HTML LANG="en-ca"> 
  <HEAD> <BASE HREF="http://www.mto.gov.on.ca/english/">
	 <LINK HREF="http://www.mto.gov.on.ca/css/style.css" REL="stylesheet"
	  TYPE="text/css">
	 <META NAME="Author" CONTENT="Ontario Ministry of Transportation">

<!-- TemplateBeginEditable name="head" -->
	 <META NAME="robots" CONTENT="noindex,nofollow"> 
	 <TITLE>Road Closures</TITLE>
<!-- TemplateEndEditable -->
  </HEAD> 
  <BODY BGCOLOR="#ffffff"> 
	 <P></P> 
	 <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0"> 
		<TR> 
		  <TD><A HREF="http://www.gov.on.ca/MBS/english/index.html"><IMG
			 SRC="images/ont_head.gif" WIDTH="246" HEIGHT="61" BORDER="0"
			 ALT="Government of Ontario"></A><!-- TemplateBeginEditable 
	  name="skipMenu" --><A
			 HREF="traveller/conditions/rdclosure.htm#skipmenu"><IMG SRC="images/bump.gif"
			 HEIGHT="1" WIDTH="1" BORDER="0" ALT="| Skip Navigation Menu |"></A><!-- TemplateEndEditable --></TD>
		  
		  <TD ALIGN="right"><A HREF="index.html"><IMG SRC="images/mto_e.gif"
			 WIDTH="259" HEIGHT="51" BORDER="0" ALT="Ministry of Transportation"></A><BR><A
			 ACCESSKEY="1" HREF="http://www.gov.on.ca/MBS/english/index.html"><IMG
			 SRC="images/central-site.gif" WIDTH="63" HEIGHT="10" BORDER="0"
			 ALT="Government of Ontario Central Site."></A><!-- TemplateBeginEditable 
	  name="topFeedback" --><A ACCESSKEY="2" HREF="feedback/mtoinfo.htm"><IMG
			 SRC="images/feedback.gif" WIDTH="54" HEIGHT="10" BORDER="0"
			 ALT="Contact us for questions and comments."></A><!-- TemplateEndEditable --><A
			 ACCESSKEY="3" HREF="search.htm"><IMG SRC="images/search.gif" WIDTH="43"
			 HEIGHT="10" BORDER="0"
			 ALT="Search the Ministry of Transportation Web site."></A><A
			 ACCESSKEY="4" HREF="map.htm"><IMG SRC="images/site-map.gif" WIDTH="52"
			 HEIGHT="10" BORDER="0" ALT="Site map for the ministry Web site."></A><!-- TemplateBeginEditable 
	  name="topFrench" --><A ACCESSKEY="5"
			 HREF="/french/traveller/conditions/rdclosure.htm"><SPAN LANG="fr-ca"><IMG
			 SRC="images/francais.gif" WIDTH="48" HEIGHT="10" BORDER="0"
			 ALT="Version fran&ccedil;aise de cette page."></SPAN></A><!-- TemplateEndEditable --></TD>
		  
		</TR> 
		<TR> 
		  <TD COLSPAN="2" STYLE="background-color: #666666"><IMG
			 SRC="images/bump.gif" WIDTH="1" HEIGHT="1" ALT=" "></TD> 
		</TR> 
		<TR> 
		  <TD COLSPAN="2"><IMG SRC="images/bump.gif" WIDTH="1" HEIGHT="3"
			 ALT=" "></TD> 
		</TR> 
	 </TABLE> 
	 <TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="0"> 
		<TR> 
		  <TD CLASS="menuTop"><A HREF="index.html">Home</A></TD> 
		  <TD CLASS="menuTop"><A HREF="about/">About the Ministry</A></TD> 
		  <TD CLASS="menuTop"><A HREF="dandv/">Drivers & Vehicles</A></TD> 
		  <TD CLASS="menuTop"><A HREF="traveller/">Traveller's
			 Information</A></TD> 
		  <TD CLASS="menuTop"><A HREF="trucks/">Trucks & Buses</A></TD> 
		  <TD CLASS="menuTop"><A HREF="safety/">Road Safety</A></TD> 
		</TR> 
		<TR> 
		  <TD CLASS="menuTop"><A HREF="new/">What's New</A></TD> 
		  <TD CLASS="menuTop"><A HREF="engineering/">Highways</A></TD> 
		  <TD CLASS="menuTop"><A HREF="business/">Opportunities</A></TD> 
		  <TD CLASS="menuTop"><A HREF="pubs/">Publications</A></TD> 
		  <TD CLASS="menuTop"><A HREF="sites/sites.htm">Related Links</A></TD> 
		  <TD CLASS="menuTop"><A HREF="faq/">FAQ</A></TD> 
		</TR> 
		<TR> 
    <!-- TemplateBeginEditable name="location" -->
		  <TD CLASS="location" COLSPAN="6">Location: <A
			 HREF="index.html">Ministry Home</A> > <A HREF="traveller/">Traveller's
			 Information</A> > <A HREF="traveller/conditions/">Road Conditions</A> >
			 Road Closures</TD>
    <!-- TemplateEndEditable -->
		</TR> 
		<TR> 
		  <TD COLSPAN="6"><IMG SRC="images/bump.gif" WIDTH="1" HEIGHT="3"
			 ALT=" "></TD> 
		</TR> 
		<TR> 
		  <TD COLSPAN="6" STYLE="background-color: #666666"><IMG
			 SRC="images/bump.gif" WIDTH="1" HEIGHT="1" ALT=" "></TD> 
		</TR> 
	 </TABLE> <BR>	

<!-- TemplateBeginEditable name="content" -->
	 <DIV CLASS="content"> 
		<H1>Road Closures</H1> 
		<P>Please press the Refresh or Reload button at the top of your screen to
		  see the most recent updates.</P> 
		<P><B>Road closures and unscheduled events</B></P> 
		<P><B>Last updated: October 12th, 2007at 2:20 a.m.</B></P> </DIV> 
	 <DIV CLASS="content"> 
		<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0"> 
		  <TR> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="15%" HEIGHT="33">Highway</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="22%" HEIGHT="33">Area</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="61%" HEIGHT="33" ALIGN="LEFT">Reason for
				closure</TH> 
		  </TR> 
		  <TR> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="15%" HEIGHT="19">401</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="22%" HEIGHT="19">Ottawa</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="61%" HEIGHT="19" ALIGN="LEFT">is closed
				eastbound at Lancaster approximately 11 kilometres west of the Quebec border
				due to a collision. </TH> 
		  </TR> 
		  
		  
		   
		   
		  
		  
		  
		  
		  
		   
		  
		   
		  
		   
		   
		   
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		   
		   
		   
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		   
		   
		   
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  
		  

<!-- BEGIN ROW -->
		</TABLE></DIV> 
	 <DIV CLASS="content">&nbsp; 
		<P><SMALL>This information is provided as a public service. Although we
		  endeavor to ensure that the information is as current and accurate as possible,
		  errors do occasionally occur. Therefore, we cannot guarantee the accuracy of
		  the information. Readers should, where possible, verify the information before
		  relying on it.</SMALL></P> 
		<H2 STYLE="font-size:1.1em;">Road information by phone</H2> 
		<P><B>Provincial Call Centre:</B> 1-800-268-4686<BR><B>In GTA:</B>
		  416-235-4686</P> 
		<P><B>Provincial TTY:</B> 1-866-471-8929<BR><B>Niagara Region TTY:</B>
		  905-704-2426</P><HR> 
		<P CLASS="noBottom">See also:</P> 
		<UL CLASS="noTop"> 
		  <LI><A HREF="traveller/conditions/index.html">Winter Road Condition
			 Reports</A></LI> 
		  <LI><A
			 HREF="traveller/compass/camera/pictures/tris/trismain.htm">Central Region
			 Traffic Reports</A></LI> 
		  <LI><A HREF="winter.htm">Winter Driving in Ontario</A></LI> 
		</UL> </DIV> 
	  
	 
<!-- TemplateEndEditable -->
	 <HR><BR> 
	 <DIV CLASS="menuBottom"> |
		<A HREF="http://www.gov.on.ca/MBS/english/index.html">central site</A> | <!-- TemplateBeginEditable name="bottomFeedback" -->
		<A HREF="feedback/mtoinfo.htm">feedback</A>
	  <!-- TemplateEndEditable -->
		| <A HREF="search.htm">search</A> | <A HREF="map.htm">site map</A> | <!-- TemplateBeginEditable name="bottomFrench" -->
		<A HREF="/french/traveller/conditions/rdclosure.htm"><SPAN
		LANG="fr-ca">fran&ccedil;ais</SPAN></A>
	  <!-- TemplateEndEditable --> | <BR>| <A HREF="index.html">Home</A> |
		<A HREF="about/">About the Ministry</A> | <A HREF="dandv/">Drivers &
		Vehicles</A> | <A HREF="traveller/">Traveller's Information</A> |
		<A HREF="trucks/">Trucks & Buses</A> | <A HREF="safety/">Road Safety</A>
		|<BR>| <A HREF="new/">What's New</A> | <A HREF="engineering/">Highways</A> |
		<A HREF="business/">Opportunities</A> | <A HREF="pubs/">Publications</A> |
		<A HREF="sites/sites.htm">Related Links</A> | <A HREF="faq/">FAQ</A> | 
		<P><IMG SRC="images/wordmark.gif" WIDTH="404" HEIGHT="39"
		  ALT="This site is maintained by the Government of Ontario, Canada."
		  BORDER="0"><BR><BR> &copy; 2003
		  <A HREF="http://www.gov.on.ca/MBS/english/common/queens.html">Queen's Printer
		  for Ontario</A></P> </DIV> </BODY>
</HTML>

scottayy | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

I'm in no way=

Posted: Sun Oct 14, 2007 12:57 am
by gregwhitworth
Sorry, but I wont have and answer to your issue, but I have delved into PHP and other coding mediums for a while now and have used forums quite often to solve various issues. I feel that if you offer the PHP Gurus the information that "WAS" changed within the HTML within the past few weeks it may make it easier to solve the issue. Also, if your company has a RAID (Makes backups of certain files automatically) on their hard drive, you may be able to grab a previous version of the site, say before it got screwed up. 'Cause, if I was to guess, I would say "NOT" to mess with the php as it was working just fine up until a few weeks ago. I would say take a look at the HTML and make sure that everything is set up correctly, then if that is okay - then delve into the PHP.

I hope this helps, I just know from experience that the more info you give the PHP Guru's the quicker they are at answering the problems.

Good luck, and cut o's (spelling?) to you for trying to fix it.

--
Greg

Posted: Sun Oct 14, 2007 1:17 am
by webstar
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Ask and ye shall get. Thank god for the way back machine.

This is the website from Feb 2007 when the script still worked.

[syntax="html"]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hmpro6.dtd">
<HTML LANG="en-ca"> 
  <HEAD> <BASE HREF="http://www.mto.gov.on.ca/english/">
	 <LINK HREF="http://web.archive.org/web/20070209164451/http://www.mto.gov.on.ca/css/style.css" REL="stylesheet"
	  TYPE="text/css">
	 <META NAME="Author" CONTENT="Ontario Ministry of Transportation">

<!-- TemplateBeginEditable name="head" -->
	 <META NAME="robots" CONTENT="noindex,nofollow"> 
	 <TITLE>Road Closures</TITLE>
<!-- TemplateEndEditable -->
  </HEAD> 
  <BODY BGCOLOR="#ffffff"> 
	 <P></P> 
	 <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0"> 
		<TR> 
		  <TD><A HREF="http://www.gov.on.ca/MBS/english/index.html"><IMG
			 SRC="images/ont_head.gif" WIDTH="246" HEIGHT="61" BORDER="0"
			 ALT="Government of Ontario"></A><!-- TemplateBeginEditable 
	  name="skipMenu" --><A
			 HREF="traveller/conditions/rdclosure.htm#skipmenu"><IMG SRC="images/bump.gif"
			 HEIGHT="1" WIDTH="1" BORDER="0" ALT="| Skip Navigation Menu |"></A><!-- TemplateEndEditable --></TD>
		  
		  <TD ALIGN="right"><A HREF="index.html"><IMG SRC="images/mto_e.gif"
			 WIDTH="259" HEIGHT="51" BORDER="0" ALT="Ministry of Transportation"></A><BR><A
			 ACCESSKEY="1" HREF="http://www.gov.on.ca/MBS/english/index.html"><IMG
			 SRC="images/central-site.gif" WIDTH="63" HEIGHT="10" BORDER="0"
			 ALT="Government of Ontario Central Site."></A><!-- TemplateBeginEditable 
	  name="topFeedback" --><A ACCESSKEY="2" HREF="feedback/mtoinfo.htm"><IMG
			 SRC="images/feedback.gif" WIDTH="54" HEIGHT="10" BORDER="0"
			 ALT="Contact us for questions and comments."></A><!-- TemplateEndEditable --><A
			 ACCESSKEY="3" HREF="search.htm"><IMG SRC="images/search.gif" WIDTH="43"
			 HEIGHT="10" BORDER="0"
			 ALT="Search the Ministry of Transportation Web site."></A><A
			 ACCESSKEY="4" HREF="map.htm"><IMG SRC="images/site-map.gif" WIDTH="52"
			 HEIGHT="10" BORDER="0" ALT="Site map for the ministry Web site."></A><!-- TemplateBeginEditable 
	  name="topFrench" --><A ACCESSKEY="5"
			 HREF="/french/traveller/conditions/rdclosure.htm"><SPAN LANG="fr-ca"><IMG
			 SRC="images/francais.gif" WIDTH="48" HEIGHT="10" BORDER="0"
			 ALT="Version fran&ccedil;aise de cette page."></SPAN></A><!-- TemplateEndEditable --></TD>
		  
		</TR> 
		<TR> 
		  <TD COLSPAN="2" STYLE="background-color: #666666"><IMG
			 SRC="images/bump.gif" WIDTH="1" HEIGHT="1" ALT=" "></TD> 
		</TR> 
		<TR> 
		  <TD COLSPAN="2"><IMG SRC="images/bump.gif" WIDTH="1" HEIGHT="3"
			 ALT=" "></TD> 
		</TR> 
	 </TABLE> 
	 <TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="0"> 
		<TR> 
		  <TD CLASS="menuTop"><A HREF="index.html">Home</A></TD> 
		  <TD CLASS="menuTop"><A HREF="about/">About the Ministry</A></TD> 
		  <TD CLASS="menuTop"><A HREF="dandv/">Drivers & Vehicles</A></TD> 
		  <TD CLASS="menuTop"><A HREF="traveller/">Traveller's
			 Information</A></TD> 
		  <TD CLASS="menuTop"><A HREF="trucks/">Trucks & Buses</A></TD> 
		  <TD CLASS="menuTop"><A HREF="safety/">Road Safety</A></TD> 
		</TR> 
		<TR> 
		  <TD CLASS="menuTop"><A HREF="new/">What's New</A></TD> 
		  <TD CLASS="menuTop"><A HREF="engineering/">Highways</A></TD> 
		  <TD CLASS="menuTop"><A HREF="business/">Opportunities</A></TD> 
		  <TD CLASS="menuTop"><A HREF="pubs/">Publications</A></TD> 
		  <TD CLASS="menuTop"><A HREF="sites/sites.htm">Related Links</A></TD> 
		  <TD CLASS="menuTop"><A HREF="faq/">FAQ</A></TD> 
		</TR> 
		<TR> 
    <!-- TemplateBeginEditable name="location" -->
		  <TD CLASS="location" COLSPAN="6">Location: <A
			 HREF="index.html">Ministry Home</A> > <A HREF="traveller/">Traveller's
			 Information</A> > <A HREF="traveller/conditions/">Road Conditions</A> >
			 Road Closures</TD>
    <!-- TemplateEndEditable -->
		</TR> 
		<TR> 
		  <TD COLSPAN="6"><IMG SRC="images/bump.gif" WIDTH="1" HEIGHT="3"
			 ALT=" "></TD> 
		</TR> 
		<TR> 
		  <TD COLSPAN="6" STYLE="background-color: #666666"><IMG
			 SRC="images/bump.gif" WIDTH="1" HEIGHT="1" ALT=" "></TD> 
		</TR> 
	 </TABLE> <BR>	

<!-- TemplateBeginEditable name="content" -->
	 <DIV CLASS="content"> 
		<H1>Road Closures</H1> 
		<P>Please press the Refresh or Reload button at the top of your screen to
		  see the most recent updates.</P> 
		<P><B>Winter related closures and unscheduled traffic events</B></P> 
		<P><B>Last updated: February 9, 2007 as of 11:15 a.m.</B></P> 
		<TABLE WIDTH="80%" ALIGN="CENTER" BORDER="1" CELLPADDING="2"
		CELLSPACING="0"> 
		  <TR> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="20%" HEIGHT="32">Highways</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="21%" HEIGHT="32">Area</TH> 
			 <TH BGCOLOR="#FFFFE6" WIDTH="58%" HEIGHT="32">Reason for Closure</TH>
			 
		  </TR> 
		  <TR> 
			 <TD BGCOLOR="#FFFFE6" HEIGHT="21">21</TD> 
			 <TD BGCOLOR="#FFFFE6" WIDTH="125" HEIGHT="21">Southwestern</TD> 
			 <TD BGCOLOR="#FFFFE6" WIDTH="344" HEIGHT="21">is closed from
				Southampton to Port Albert due to nil visibility.</TD> 
		  </TR> 
		  <TR>
			 <TD BGCOLOR="#FFFFE6" HEIGHT="21">401</TD>
			 <TD BGCOLOR="#FFFFE6" WIDTH="125" HEIGHT="21">Toronto</TD>
			 <TD BGCOLOR="#FFFFE6" WIDTH="344" HEIGHT="21">two right lanes are
				closed eastbound express from Port Union road to Rougemount drive due to
				emergency roadwork.</TD>
		  </TR>
		  <TR>
			 <TD BGCOLOR="#FFFFE6" HEIGHT="21">556</TD>
			 <TD BGCOLOR="#FFFFE6" WIDTH="125" HEIGHT="21">Searchmont</TD>
			 <TD BGCOLOR="#FFFFE6" WIDTH="344" HEIGHT="21">is closed until 12:00
				pm approximately 16 kilometers from the junction of 17/556 due to the removal
				of a truck from the ditch.</TD>
		  </TR> 
		</TABLE> 
		<P><SMALL>This information is provided as a public service. Although we
		  endeavor to ensure that the information is as current and accurate as possible,
		  errors do occasionally occur. Therefore, we cannot guarantee the accuracy of
		  the information. Readers should, where possible, verify the information before
		  relying on it.</SMALL></P> 
		<H2 STYLE="font-size:1.1em;">Road information by phone</H2> 
		<P><B>Provincial Call Centre:</B> 1-800-268-4686<BR><B>In GTA:</B>
		  416-235-4686</P> 
		<P><B>Provincial TTY:</B> 1-866-471-8929<BR><B>Niagara Region TTY:</B>
		  905-704-2426</P><HR> 
		<P CLASS="noBottom">See also:</P> 
		<UL CLASS="noTop"> 
		  <LI><A HREF="traveller/conditions/index.html">Winter Road Condition
			 Reports</A></LI> 
		  <LI><A
			 HREF="traveller/compass/camera/pictures/tris/trismain.htm">Central Region
			 Traffic Reports</A></LI> 
		  <LI><A HREF="winter.htm">Winter Driving in Ontario</A></LI> 
		</UL> </DIV> 
	  
	 
<!-- TemplateEndEditable -->
	 <HR><BR> 
	 <DIV CLASS="menuBottom"> |
		<A HREF="http://www.gov.on.ca/MBS/english/index.html">central site</A> | <!-- TemplateBeginEditable name="bottomFeedback" -->
		<A HREF="feedback/mtoinfo.htm">feedback</A>
	  <!-- TemplateEndEditable -->
		| <A HREF="search.htm">search</A> | <A HREF="map.htm">site map</A> | <!-- TemplateBeginEditable name="bottomFrench" -->
		<A HREF="/french/traveller/conditions/rdclosure.htm"><SPAN
		LANG="fr-ca">fran&ccedil;ais</SPAN></A>
	  <!-- TemplateEndEditable --> | <BR>| <A HREF="index.html">Home</A> |
		<A HREF="about/">About the Ministry</A> | <A HREF="dandv/">Drivers &
		Vehicles</A> | <A HREF="traveller/">Traveller's Information</A> |
		<A HREF="trucks/">Trucks & Buses</A> | <A HREF="safety/">Road Safety</A>
		|<BR>| <A HREF="new/">What's New</A> | <A HREF="engineering/">Highways</A> |
		<A HREF="business/">Opportunities</A> | <A HREF="pubs/">Publications</A> |
		<A HREF="sites/sites.htm">Related Links</A> | <A HREF="faq/">FAQ</A> | 
		<P><IMG SRC="images/wordmark.gif" WIDTH="404" HEIGHT="39"
		  ALT="This site is maintained by the Government of Ontario, Canada."
		  BORDER="0"><BR><BR> &copy; 2003
		  <A HREF="http://www.gov.on.ca/MBS/english/common/queens.html">Queen's Printer
		  for Ontario</A></P> </DIV> </BODY>

</HTML>

feyd | Please use[/syntax]

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Some things....

Posted: Sun Oct 14, 2007 2:59 am
by gregwhitworth
Okay,

I can't really test this, but it seems as though the older version has a complete div that encases the whole CONTENT AREA from

Code: Select all

<!-- TemplateBeginEditable name="content" -->
    <div CLASS="content">
          .... blah blah ....
     </div>
<!-- TemplateEndEditable -->
The old version actually has some 'TD's instead of just 'TH' cells. Also the new one has a command of <!-- Begin Row -->, which I am not sure if that will cause any effects or not.

I would backup the current one on a dev server and put the old one in place and see if it still works. Then you will know if it is the HTML or the PHP, but there is definitely some differences in the two HTML files.

Posted: Sun Oct 14, 2007 6:48 am
by feyd
Please edit the original, starting post to have a new, descriptive title/subject.
[url=http://forums.devnetwork.net/viewtopic.php?t=30037]Forum Rules[/url] Section 1.1 wrote:2. Use descriptive subjects when you start a new thread. Vague titles such as "Help!", "Why?" are misleading and keep you from receiving an answer to your question.

Posted: Sun Oct 14, 2007 11:20 am
by RobertGonzalez
What do lines 40 to 50 of the current C:\WEATHERSCRIPTS\mto\test\roadclosed.php look like? Please post.

Posted: Sun Oct 14, 2007 11:25 am
by webstar

Code: Select all

}
  }
  if (!$curr_event_found) {    // Add the not found current event to the message
     $send_email = true;
     if ($debug) { print ("Found a new event: \nRegion: " . $curr_events[$curr_event_num][1] . " \nHighway(s): " . $curr_events[$curr_event_num][0] . " \nReason: " . $curr_events[$curr_event_num][2] . "\n=====END=====\n"); }
//     $event_message .= ">>> NEW <<<\n";
     $event_message .= "Region: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n====END====\n";
     $email_subject .= " Hwy: " . $curr_events[$curr_event_num][0];
 
  } else {
//    if ($debug) { print ("Found a previously sent event:\nRegion: " . $curr_events[$curr_event_num][1] . "\nHighway(s): " . $curr_events[$curr_event_num][0] . "\nReason: " . $curr_events[$curr_event_num][2] . "\n====END====\n"); }
40 to 50

Posted: Sun Oct 14, 2007 1:57 pm
by webstar
I do thank you all for trying to fix this.

I've been looking at it again and I used the old webpage.

If you change $url at the top to $url = "http://www.weatherserver.net/mtoold.html";

And set the following two lines to what they show

Code: Select all

$content = find_data($webpage, "<DIV", "</DIV>");  // All content is in the <DIV></DIV>
$content = find_data($content, "<TABLE", "</TABLE>");     // Look for the events HTML table
The script will run and work using http://www.weatherserver.net/mtoold.html but not with http://www.mto.gov.on.ca/english/travel ... losure.htm

Posted: Sun Oct 14, 2007 1:59 pm
by webstar
You don't think it would be aas simple as the person above said.

That they are using TH in the tables rather then TD?

Posted: Sun Oct 14, 2007 3:20 pm
by RobertGonzalez
Yes, it could be that simple. And it often does lead to problems when scraping someone else's markup, when they change their markup, that is.