[SOLVED] Some help needed

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Simon Angell
Forum Commoner
Posts: 45
Joined: Fri Jan 24, 2003 12:14 am

Some help needed

Post by Simon Angell »

Hi all.
Im looking to get a script going to parse data from a website. the data im grabbing looks like this

Code: Select all

<!-- DATA, 20040711:113000, Canberra Airport, 10.4, 7.5, 83.0, SSW, 7, 9, -9999.0, 0, 6.6, 20040711:074800, 10.5, 20040711:111000, SSW, 5, 20040711:103900 -->
<tr>
   <td nowrap align="left">Canberra Airport </td>
   <td nowrap align="center">11 11:30</td>
   <td align="center">10.4</td>
   <td align="center">7.5</td>
   <td align="center">83</td>
   <td align="center">SSW</td>
   <td align="center">7</td>
   <td align="center">4</td>
   <td align="center">9</td>
   <td align="center">5</td>
   <td align="center">-</td>
   <td align="center">0.0</td>
   <td align="center">10.5<br>11:10</td>
   <td align="center">6.6<br>07:48</td>
   <td align="center">SSW</td>
   <td align="center">9<br>10:39</td>
   <td align="center">5<br>10:39</td>
</tr>
Now i want to get a script to start reading the data either from the <!---data or more appropriatly the <td nowrap align="left">Canberra Airport </td>
I would like it to display in this sort of fashion.

Updated 11th at 12:30 PM
Temperature 11.0 °C
Heat Index - °C
Dewpoint 7.0 °C
Humidity 76 %
Wind Direction WSW
Wind Speed 9 Km/H
Wind Chill 10.0 °C
Wind Gusts 13 Km/H
Barometer - Hpa
Rain since 9am 0.0 mm
i am after some help in the direction i should take in doing this?

thx in advanced
SiM
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

I think a [php_man]preg_match[/php_man] could find and extract the information. redmonkey can probably make a regex a LOT better than I can for this.. ;)
Simon Angell
Forum Commoner
Posts: 45
Joined: Fri Jan 24, 2003 12:14 am

Post by Simon Angell »

foregot to add the code i have been messing around with...

its a combination of a couple different scripts that work on there own but not real good together ....

Code: Select all

<?php
error_reporting(1);

//source file
$read = file_get_contents("http://www.bom.gov.au/products/IDN65066.shtml");


//update time
$upgrab_start = "<td nowrap align="left">Canberra Airport </td>";
$upgrab_end = "<td nowrap align="left">Canterbury </td>"; 
$upgrab = eregi("$upgrab_start(.*)$upgrab_end", $read, $update);


$update[1] = str_replace("<tr>", "", $update[1]);
$update[1] = str_replace("<td align="center">", "", $update[1]);
$update[1] = str_replace("</tr>", "", $update[1]);
$update[1] = str_replace("</td>", ",", $update[1]);

trim($update[1]);

$lines = $update[1];
$num_lines = count ($lines);

for ($i=0; $i<=$num_lines; $i++) {
$pieces = explode(",", $lines[$i]); // split each line at each comma
$one[$i]= $peices[1];
$two[$i] = $peices[2];
$three[$i] = $peices[3];
}

echo $update[1];
echo $one;
echo $two;
echo $three; 
?>

Also, i would like to archive the previous data in a for say like the last 7 days, the data is updated every 10 minutes, so any help on that would also be good.


feyd | Please use

Code: Select all

tags when posting code. Read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url][/color][color=olive] <---Soz man!  SiM [/color]
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

here's a stab at stripping out the data

Code: Select all

<?php

$data = file_get_contents("http://www.bom.gov.au/products/IDN65066.shtml");

preg_match_all('#<!--\s+DATA,.*?-->\s*<\s*tr[^>]*?>(\s*<\s*td[^>]*?>\s*(.*?)<\s*/\s*td[^>]*?>)+\s*<\s*/\s*tr[^>]*?>#is',$data,$matches);

$data = $matches[0];

$matches = array();
foreach($data as $match)
{
	preg_match_all('#(<\s*td[^>]*?>\s*(.*?)\s*<\s*/\s*td[^>]*?>)#is',$match,$newmatches);
	$matches[] = $newmatches[2];
}

var_export($matches);

?>
outputs:

Code: Select all

array (
  0 =&gt; 
  array (
    0 =&gt; 'Badgerys Creek',
    1 =&gt; '11 15:10',
    2 =&gt; '14.1',
    3 =&gt; '14.1',
    4 =&gt; '100',
    5 =&gt; 'N',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '13',
    9 =&gt; '7',
    10 =&gt; '1019.4',
    11 =&gt; '1.4',
    12 =&gt; '14.6&lt;br&gt;14:41',
    13 =&gt; '12.0&lt;br&gt;03:37',
    14 =&gt; 'N',
    15 =&gt; '24&lt;br&gt;12:10',
    16 =&gt; '13&lt;br&gt;12:10',
  ),
  1 =&gt; 
  array (
    0 =&gt; 'Bankstown Airport',
    1 =&gt; '11 15:10',
    2 =&gt; '15.7',
    3 =&gt; '14.1',
    4 =&gt; '91',
    5 =&gt; 'WNW',
    6 =&gt; '7',
    7 =&gt; '4',
    8 =&gt; '9',
    9 =&gt; '5',
    10 =&gt; '1019.5',
    11 =&gt; '1.0',
    12 =&gt; '15.7&lt;br&gt;15:08',
    13 =&gt; '11.3&lt;br&gt;07:01',
    14 =&gt; 'NW',
    15 =&gt; '18&lt;br&gt;10:54',
    16 =&gt; '10&lt;br&gt;10:54',
  ),
  2 =&gt; 
  array (
    0 =&gt; 'Bellambi Point',
    1 =&gt; '11 15:10',
    2 =&gt; '18.0',
    3 =&gt; '12.7',
    4 =&gt; '72',
    5 =&gt; 'NNE',
    6 =&gt; '9',
    7 =&gt; '5',
    8 =&gt; '15',
    9 =&gt; '8',
    10 =&gt; '-',
    11 =&gt; '0.0',
    12 =&gt; '18.3&lt;br&gt;15:01',
    13 =&gt; '14.2&lt;br&gt;07:42',
    14 =&gt; 'N',
    15 =&gt; '18&lt;br&gt;10:04',
    16 =&gt; '10&lt;br&gt;10:04',
  ),
  3 =&gt; 
  array (
    0 =&gt; 'Camden Airport &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '15.0',
    3 =&gt; '11.6',
    4 =&gt; '80',
    5 =&gt; 'N',
    6 =&gt; '11',
    7 =&gt; '6',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '1019.3',
    11 =&gt; '0.0',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  4 =&gt; 
  array (
    0 =&gt; 'Canberra Airport',
    1 =&gt; '11 15:10',
    2 =&gt; '12.4',
    3 =&gt; '4.9',
    4 =&gt; '61',
    5 =&gt; 'WNW',
    6 =&gt; '11',
    7 =&gt; '6',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '-',
    11 =&gt; '0.0',
    12 =&gt; '13.7&lt;br&gt;14:14',
    13 =&gt; '6.6&lt;br&gt;07:48',
    14 =&gt; 'NNW',
    15 =&gt; '20&lt;br&gt;14:20',
    16 =&gt; '11&lt;br&gt;14:20',
  ),
  5 =&gt; 
  array (
    0 =&gt; 'Canterbury',
    1 =&gt; '11 15:10',
    2 =&gt; '15.6',
    3 =&gt; '13.5',
    4 =&gt; '88',
    5 =&gt; 'NNW',
    6 =&gt; '9',
    7 =&gt; '5',
    8 =&gt; '13',
    9 =&gt; '7',
    10 =&gt; '-',
    11 =&gt; '1.8',
    12 =&gt; '16.8&lt;br&gt;10:21',
    13 =&gt; '12.0&lt;br&gt;07:00',
    14 =&gt; 'NNW',
    15 =&gt; '22&lt;br&gt;10:40',
    16 =&gt; '12&lt;br&gt;10:40',
  ),
  6 =&gt; 
  array (
    0 =&gt; 'Fort Denison',
    1 =&gt; '11 15:10',
    2 =&gt; '-',
    3 =&gt; '-',
    4 =&gt; '-',
    5 =&gt; 'NNW',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '18',
    9 =&gt; '10',
    10 =&gt; '-',
    11 =&gt; '-',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; 'WNW',
    15 =&gt; '26&lt;br&gt;11:20',
    16 =&gt; '14&lt;br&gt;11:20',
  ),
  7 =&gt; 
  array (
    0 =&gt; 'Gosford &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '14.3',
    3 =&gt; '13.9',
    4 =&gt; '97',
    5 =&gt; 'N',
    6 =&gt; '9',
    7 =&gt; '5',
    8 =&gt; '15',
    9 =&gt; '8',
    10 =&gt; '-',
    11 =&gt; '3.2',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  8 =&gt; 
  array (
    0 =&gt; 'Holsworthy',
    1 =&gt; '11 15:09',
    2 =&gt; '15.4',
    3 =&gt; '12.3',
    4 =&gt; '82',
    5 =&gt; 'NNW',
    6 =&gt; '9',
    7 =&gt; '5',
    8 =&gt; '13',
    9 =&gt; '7',
    10 =&gt; '-',
    11 =&gt; '0.8',
    12 =&gt; '16.2&lt;br&gt;15:03',
    13 =&gt; '11.4&lt;br&gt;07:06',
    14 =&gt; 'NNW',
    15 =&gt; '17&lt;br&gt;10:49',
    16 =&gt; '9&lt;br&gt;10:49',
  ),
  9 =&gt; 
  array (
    0 =&gt; 'Horsley Park',
    1 =&gt; '11 15:10',
    2 =&gt; '14.4',
    3 =&gt; '14.1',
    4 =&gt; '98',
    5 =&gt; 'N',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '-',
    11 =&gt; '1.8',
    12 =&gt; '14.8&lt;br&gt;14:59',
    13 =&gt; '11.1&lt;br&gt;06:56',
    14 =&gt; 'N',
    15 =&gt; '22&lt;br&gt;12:30',
    16 =&gt; '12&lt;br&gt;12:30',
  ),
  10 =&gt; 
  array (
    0 =&gt; 'Kurnell',
    1 =&gt; '11 15:10',
    2 =&gt; '-',
    3 =&gt; '-',
    4 =&gt; '-',
    5 =&gt; 'NW',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '15',
    9 =&gt; '8',
    10 =&gt; '-',
    11 =&gt; '-',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; 'NW',
    15 =&gt; '31&lt;br&gt;11:38',
    16 =&gt; '17&lt;br&gt;11:38',
  ),
  11 =&gt; 
  array (
    0 =&gt; 'Little Bay',
    1 =&gt; '11 15:10',
    2 =&gt; '-',
    3 =&gt; '-',
    4 =&gt; '-',
    5 =&gt; 'N',
    6 =&gt; '7',
    7 =&gt; '4',
    8 =&gt; '11',
    9 =&gt; '6',
    10 =&gt; '-',
    11 =&gt; '-',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; 'NW',
    15 =&gt; '26&lt;br&gt;11:34',
    16 =&gt; '14&lt;br&gt;11:34',
  ),
  12 =&gt; 
  array (
    0 =&gt; 'Lord Howe Is',
    1 =&gt; '11 15:10',
    2 =&gt; '17.7',
    3 =&gt; '9.8',
    4 =&gt; '59',
    5 =&gt; 'E',
    6 =&gt; '17',
    7 =&gt; '9',
    8 =&gt; '22',
    9 =&gt; '12',
    10 =&gt; '1023.7',
    11 =&gt; '0.0',
    12 =&gt; '19.4&lt;br&gt;12:27',
    13 =&gt; '13.5&lt;br&gt;06:30',
    14 =&gt; 'NNE',
    15 =&gt; '39&lt;br&gt;13:32',
    16 =&gt; '21&lt;br&gt;13:32',
  ),
  13 =&gt; 
  array (
    0 =&gt; 'Lucas Heights &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '14.5',
    3 =&gt; '12.9',
    4 =&gt; '90',
    5 =&gt; 'NNW',
    6 =&gt; '7',
    7 =&gt; '4',
    8 =&gt; '13',
    9 =&gt; '7',
    10 =&gt; '1019.9',
    11 =&gt; '0.5',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  14 =&gt; 
  array (
    0 =&gt; 'Mangrove Mountain &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '12.3',
    3 =&gt; '11.9',
    4 =&gt; '97',
    5 =&gt; 'NNW',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '20',
    9 =&gt; '11',
    10 =&gt; '-',
    11 =&gt; '3.6',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  15 =&gt; 
  array (
    0 =&gt; 'Mt Boyce &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '9.3',
    3 =&gt; '6.1',
    4 =&gt; '80',
    5 =&gt; 'W',
    6 =&gt; '20',
    7 =&gt; '11',
    8 =&gt; '30',
    9 =&gt; '16',
    10 =&gt; '-',
    11 =&gt; '2.2',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  16 =&gt; 
  array (
    0 =&gt; 'Nobbys Head - Newcastle &lt;sup&gt;&amp;times;&lt;/sup&gt;',
    1 =&gt; '11 15:00',
    2 =&gt; '13.6',
    3 =&gt; '13.3',
    4 =&gt; '98',
    5 =&gt; 'NW',
    6 =&gt; '22',
    7 =&gt; '12',
    8 =&gt; '28',
    9 =&gt; '15',
    10 =&gt; '-',
    11 =&gt; '1.2',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  17 =&gt; 
  array (
    0 =&gt; 'Norah Head',
    1 =&gt; '11 15:10',
    2 =&gt; '14.5',
    3 =&gt; '13.3',
    4 =&gt; '92',
    5 =&gt; 'NNW',
    6 =&gt; '26',
    7 =&gt; '14',
    8 =&gt; '28',
    9 =&gt; '15',
    10 =&gt; '1020.4',
    11 =&gt; '5.4',
    12 =&gt; '15.7&lt;br&gt;10:30',
    13 =&gt; '12.9&lt;br&gt;07:12',
    14 =&gt; 'N',
    15 =&gt; '30&lt;br&gt;13:08',
    16 =&gt; '16&lt;br&gt;13:08',
  ),
  18 =&gt; 
  array (
    0 =&gt; 'Norfolk Is',
    1 =&gt; '11 15:10',
    2 =&gt; '16.0',
    3 =&gt; '11.6',
    4 =&gt; '75',
    5 =&gt; 'ESE',
    6 =&gt; '26',
    7 =&gt; '14',
    8 =&gt; '43',
    9 =&gt; '23',
    10 =&gt; '1021.1',
    11 =&gt; '0.0',
    12 =&gt; '17.5&lt;br&gt;12:50',
    13 =&gt; '13.5&lt;br&gt;03:35',
    14 =&gt; 'ESE',
    15 =&gt; '50&lt;br&gt;11:53',
    16 =&gt; '27&lt;br&gt;11:53',
  ),
  19 =&gt; 
  array (
    0 =&gt; 'North Head',
    1 =&gt; '11 15:10',
    2 =&gt; '-',
    3 =&gt; '-',
    4 =&gt; '-',
    5 =&gt; 'N',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '-',
    11 =&gt; '-',
    12 =&gt; '-&lt;br&gt;&amp;nbsp',
    13 =&gt; '-&lt;br&gt;&amp;nbsp',
    14 =&gt; 'NW',
    15 =&gt; '30&lt;br&gt;11:13',
    16 =&gt; '16&lt;br&gt;11:13',
  ),
  20 =&gt; 
  array (
    0 =&gt; 'Penrith',
    1 =&gt; '11 15:10',
    2 =&gt; '15.3',
    3 =&gt; '15.2',
    4 =&gt; '100',
    5 =&gt; 'N',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '-',
    11 =&gt; '2.8',
    12 =&gt; '15.8&lt;br&gt;14:43',
    13 =&gt; '12.4&lt;br&gt;06:06',
    14 =&gt; 'N',
    15 =&gt; '22&lt;br&gt;13:07',
    16 =&gt; '12&lt;br&gt;13:07',
  ),
  21 =&gt; 
  array (
    0 =&gt; 'Richmond Airport',
    1 =&gt; '11 15:10',
    2 =&gt; '15.1',
    3 =&gt; '13.7',
    4 =&gt; '92',
    5 =&gt; 'N',
    6 =&gt; '13',
    7 =&gt; '7',
    8 =&gt; '18',
    9 =&gt; '10',
    10 =&gt; '1019.4',
    11 =&gt; '6.4',
    12 =&gt; '15.2&lt;br&gt;14:51',
    13 =&gt; '10.3&lt;br&gt;06:37',
    14 =&gt; 'NNE',
    15 =&gt; '20&lt;br&gt;11:47',
    16 =&gt; '11&lt;br&gt;11:47',
  ),
  22 =&gt; 
  array (
    0 =&gt; 'Sydney - Observatory Hill',
    1 =&gt; '11 15:10',
    2 =&gt; '15.2',
    3 =&gt; '13.2',
    4 =&gt; '88',
    5 =&gt; '-',
    6 =&gt; '-',
    7 =&gt; '-',
    8 =&gt; '-',
    9 =&gt; '-',
    10 =&gt; '1019.5',
    11 =&gt; '2.6',
    12 =&gt; '15.2&lt;br&gt;14:39',
    13 =&gt; '13.2&lt;br&gt;07:10',
    14 =&gt; '-&lt;br&gt;&amp;nbsp',
    15 =&gt; '-&lt;br&gt;&amp;nbsp',
    16 =&gt; '-&lt;br&gt;&amp;nbsp',
  ),
  23 =&gt; 
  array (
    0 =&gt; 'Sydney Airport',
    1 =&gt; '11 15:10',
    2 =&gt; '16.4',
    3 =&gt; '13.0',
    4 =&gt; '80',
    5 =&gt; 'N',
    6 =&gt; '17',
    7 =&gt; '9',
    8 =&gt; '20',
    9 =&gt; '11',
    10 =&gt; '1019.3',
    11 =&gt; '1.4',
    12 =&gt; '17.4&lt;br&gt;10:27',
    13 =&gt; '13.3&lt;br&gt;06:48',
    14 =&gt; 'NW',
    15 =&gt; '33&lt;br&gt;11:10',
    16 =&gt; '18&lt;br&gt;11:10',
  ),
  24 =&gt; 
  array (
    0 =&gt; 'Sydney Harbour',
    1 =&gt; '11 15:10',
    2 =&gt; '15.5',
    3 =&gt; '-',
    4 =&gt; '-',
    5 =&gt; 'NNW',
    6 =&gt; '18',
    7 =&gt; '10',
    8 =&gt; '20',
    9 =&gt; '11',
    10 =&gt; '-',
    11 =&gt; '-',
    12 =&gt; '16.6&lt;br&gt;09:48',
    13 =&gt; '13.9&lt;br&gt;06:19',
    14 =&gt; 'WNW',
    15 =&gt; '24&lt;br&gt;12:23',
    16 =&gt; '13&lt;br&gt;12:23',
  ),
  25 =&gt; 
  array (
    0 =&gt; 'Sydney Olympic Pk',
    1 =&gt; '11 15:10',
    2 =&gt; '15.4',
    3 =&gt; '12.7',
    4 =&gt; '84',
    5 =&gt; 'N',
    6 =&gt; '9',
    7 =&gt; '5',
    8 =&gt; '13',
    9 =&gt; '7',
    10 =&gt; '-',
    11 =&gt; '2.8',
    12 =&gt; '15.9&lt;br&gt;10:14',
    13 =&gt; '12.7&lt;br&gt;07:13',
    14 =&gt; 'NNW',
    15 =&gt; '22&lt;br&gt;12:02',
    16 =&gt; '12&lt;br&gt;12:02',
  ),
  26 =&gt; 
  array (
    0 =&gt; 'Tuggeranong',
    1 =&gt; '11 15:10',
    2 =&gt; '12.2',
    3 =&gt; '5.6',
    4 =&gt; '65',
    5 =&gt; 'NW',
    6 =&gt; '7',
    7 =&gt; '4',
    8 =&gt; '15',
    9 =&gt; '8',
    10 =&gt; '1020.0',
    11 =&gt; '1.4',
    12 =&gt; '13.2&lt;br&gt;14:59',
    13 =&gt; '7.1&lt;br&gt;07:15',
    14 =&gt; 'NW',
    15 =&gt; '15&lt;br&gt;14:26',
    16 =&gt; '8&lt;br&gt;14:26',
  ),
  27 =&gt; 
  array (
    0 =&gt; 'Williamtown',
    1 =&gt; '11 15:10',
    2 =&gt; '13.6',
    3 =&gt; '12.9',
    4 =&gt; '95',
    5 =&gt; 'NNW',
    6 =&gt; '15',
    7 =&gt; '8',
    8 =&gt; '17',
    9 =&gt; '9',
    10 =&gt; '1021.3',
    11 =&gt; '2.2',
    12 =&gt; '14.7&lt;br&gt;10:58',
    13 =&gt; '10.2&lt;br&gt;07:04',
    14 =&gt; 'WNW',
    15 =&gt; '20&lt;br&gt;11:31',
    16 =&gt; '11&lt;br&gt;11:31',
  ),
)

As for archiving, I'd suggest storing into a database. For updating every 10 minutes, you should probably use a cron job, if you can.
Simon Angell
Forum Commoner
Posts: 45
Joined: Fri Jan 24, 2003 12:14 am

Post by Simon Angell »

cheers man, ill have a play around with it.
Simon Angell
Forum Commoner
Posts: 45
Joined: Fri Jan 24, 2003 12:14 am

Post by Simon Angell »

Hi.
I have been playing around with the above and with resonalble sucess, but it seems to me that its just adding extra complication to a simple thing.

The above grabs the data needed, and then some, i have got it to display just what i need using var_export($matches[4]); - which is good, but getting it to display the out put data

Code: Select all

array ( 
    0 => 'Canberra Airport', 
    1 => '11 15:10', 
    2 => '12.4', 
    3 => '4.9', 
    4 => '61', 
    5 => 'WNW', 
    6 => '11', 
    7 => '6', 
    8 => '17', 
    9 => '9', 
    10 => '-', 
    11 => '0.0', 
    12 => '13.7<br>14:14', 
    13 => '6.6<br>07:48', 
    14 => 'NNW', 
    15 => '20<br>14:20', 
    16 => '11<br>14:20', 
  ),
into this form
Updated 11th at 12:30 PM
Temperature 11.0 °C
Heat Index - °C
Dewpoint 7.0 °C
Humidity 76 %
Wind Direction WSW
Wind Speed 9 Km/H
Wind Chill 10.0 °C
Wind Gusts 13 Km/H
Barometer - Hpa
Rain since 9am 0.0 mm
is proving difficult for my amatuer brains.

I have tried save the array data into a file for my data grab script to grab and parse, but can not seem to get the file to save. if i can get this done then the grab script will work no probs.

If there is an easier way to get the data of the 4th array to to display as the above then can you give me some clues on how to do it? or even just to save the bloody array output to a file :lol: !
User avatar
John Cartwright
Site Admin
Posts: 11470
Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:

Post by John Cartwright »

look into [php_man]foreach[/php_man]
Simon Angell
Forum Commoner
Posts: 45
Joined: Fri Jan 24, 2003 12:14 am

Post by Simon Angell »

Thanks heaps, got the puppy to display just what i want! (after a little array combining!)

Full code now looks like this...

Code: Select all

<?php 

$data = file_get_contents("http://www.bom.gov.au/products/IDN65066.shtml"); 

preg_match_all('#<!--\s+DATA,.*?-->\s*<\s*tr[^>]*?>(\s*<\s*td[^>]*?>\s*(.*?)<\s*/\s*td[^>]*?>)+\s*<\s*/\s*tr[^>]*?>#is',$data,$matches); 

$data = $matches[0]; 

$matches = array(); 
foreach($data as $match) 
{ 
   preg_match_all('#(<\s*td[^>]*?>\s*(.*?)\s*<\s*/\s*td[^>]*?>)#is',$match,$newmatches); 
   $matches[] = $newmatches[2]; 
} 


// title arrays
$a = array("AWS", "Date and Time", "Temperature (deg C)" , "Dewpoint (deg C)", "Humidity (%)", "Wind Direction", "Wind Speed (Km/hr)", "Wind Speed (knots)", "Gust Speed (Km/hr)", "Gust Speed (knots)", "Pressure (hPa)", "Rain since 9am (mm)");
$b = $matches[4];

// merging them into the new array $c
foreach($a as $i => $v)
{
     $c[$b[$i]] = $v;
}

// printing result
foreach($c as $k => $v)
{
     echo " <img src="pics/logosbgrounds/spacer.gif" width="5"> $v: $k.<br>\n";
}

?>

Displays as
AWS: Canberra Airport.
Date and Time: 13 16:20.
Temperature: 9.6.
Dewpoint: 3.8.
Humidity: 68.
Wind Direction: NNW.
Wind Speed (Km/hr): 17.
Wind Speed (knots): 9.
Gust Speed (Km/hr): 18.
Gust Speed (knots): 10.
Pressure (hPa): 1023.0.
Rainfall since 9am (mm): 0.0.

Thanks heaps!
Post Reply