Jump to content

for loop not working properly/Cannot use string offset as an array


Nuv

Recommended Posts

My code

 

<?php
  set_time_limit (0);
  include("config.php");  

  $data = "<td><a href='/hospitals-in/Alabama'>Alabama</a></td> 
           <td><a href='/hospitals-in/District-of-Columbia'>District of Columbia</a></td> 
           <td><a href='/hospitals-in/Kentucky'>Kentucky</a></td> 
           <td><a href='/hospitals-in/Montana'>Montana</a></td> 
           <td><a href='/hospitals-in/Ohio'>Ohio</a></td> 
           <td><a href='/hospitals-in/Texas'>Texas</a></td> 
           <td><a href='/hospitals-in/Alaska'>Alaska</a></td> 
           <td><a href='/hospitals-in/Florida'>Florida</a></td> 
           <td><a href='/hospitals-in/Louisiana'>Louisiana</a></td> 
           <td><a href='/hospitals-in/Nebraska'>Nebraska</a></td> 
           <td><a href='/hospitals-in/Oklahoma'>Oklahoma</a></td> 
           <td><a href='/hospitals-in/Utah'>Utah</a></td> 
           <td><a href='/hospitals-in/America-Samoa'>America Samoa</a></td> 
           <td><a href='/hospitals-in/Georgia'>Georgia</a></td> 
           <td><a href='/hospitals-in/Maine'>Maine</a></td> 
           <td><a href='/hospitals-in/Nevada'>Nevada</a></td> 
           <td><a href='/hospitals-in/Oregon'>Oregon</a></td> 
           <td><a href='/hospitals-in/Vermont'>Vermont</a></td> 
           <td><a href='/hospitals-in/Arizona'>Arizona</a></td> 
           <td><a href='/hospitals-in/Hawaii'>Hawaii</a></td> 
           <td><a href='/hospitals-in/Maryland'>Maryland</a></td> 
           <td><a href='/hospitals-in/New-Hampshire'>New Hampshire</a></td> 
           <td><a href='/hospitals-in/Pennsylvania'>Pennsylvania</a></td> 
           <td><a href='/hospitals-in/Virgin-Islands'>Virgin Islands</a></td> 
           <td><a href='/hospitals-in/Arkansas'>Arkansas</a></td> 
           <td><a href='/hospitals-in/Idaho'>Idaho</a></td> 
           <td><a href='/hospitals-in/Massachusetts'>Massachusetts</a></td> 
           <td><a href='/hospitals-in/New-Jersey'>New Jersey</a></td> 
           <td><a href='/hospitals-in/Puerto-Rico'>Puerto Rico</a></td> 
           <td><a href='/hospitals-in/Virginia'>Virginia</a></td> 
           <td><a href='/hospitals-in/California'>California</a></td> 
           <td><a href='/hospitals-in/Illinois'>Illinois</a></td> 
           <td><a href='/hospitals-in/Michigan'>Michigan</a></td> 
           <td><a href='/hospitals-in/New-Mexico'>New Mexico</a></td> 
           <td><a href='/hospitals-in/Rhode-Island'>Rhode Island</a></td> 
           <td><a href='/hospitals-in/Washington'>Washington</a></td> 
           <td><a href='/hospitals-in/Colorado'>Colorado</a></td> 
           <td><a href='/hospitals-in/Indiana'>Indiana</a></td> 
           <td><a href='/hospitals-in/Minnesota'>Minnesota</a></td> 
           <td><a href='/hospitals-in/New-York'>New York</a></td> 
           <td><a href='/hospitals-in/South-Carolina'>South Carolina</a></td> 
           <td><a href='/hospitals-in/West-Virginia'>West Virginia</a></td> 
           <td><a href='/hospitals-in/Connecticut'>Connecticut</a></td> 
           <td><a href='/hospitals-in/Iowa'>Iowa</a></td> 
           <td><a href='/hospitals-in/Mississippi'>Mississippi</a></td> 
           <td><a href='/hospitals-in/North-Carolina'>North Carolina</a></td> 
           <td><a href='/hospitals-in/South-Dakota'>South Dakota</a></td> 
           <td><a href='/hospitals-in/Wisconsin'>Wisconsin</a></td> 
           <td><a href='/hospitals-in/Delaware'>Delaware</a></td> 
           <td><a href='/hospitals-in/Kansas'>Kansas</a></td> 
           <td><a href='/hospitals-in/Missouri'>Missouri</a></td> 
           <td><a href='/hospitals-in/North-Dakota'>North Dakota</a></td> 
           <td><a href='/hospitals-in/Tennessee'>Tennessee</a></td> 
           <td><a href='/hospitals-in/Wyoming'>Wyoming</a></td>";
                          
  preg_match_all("~<td><a\s+href='(.*?)'>(.*?)</a></td>~", $data, $link);
  echo '<pre>';
  echo print_r($link);
  echo '</pre>' ;
  $countlink = count($link[1]);
  for($i=0 ; $i < $countlink; $i++)
  {
      if (is_array($link)) 
      {
      $sitelink = "http://www.xxx.com".$link[1][$i];
      $hospitallink = file_get_contents("$sitelink");
      preg_match_all("~<td><a href=\"/hospital/(.*?)\">(.*?)</a></td>~", $hospitallink, $hospitalinfo);
      
      $city = $link[2][$i];
      $countinfo = count($hospitalinfo[1]);
      
      for($j=0 ; $j < $countinfo ; $j++)
      {
          $infolink = "http://www.xxx.com/hospital/".$hospitalinfo[1][$j];
          $getinfo = file_get_contents("$infolink");
          $regex = "~<b>Name:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>Address:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>Phone:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>Number\s+of\s+Beds:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>Type:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>System:</b>\s+(.*?)\s+</p>\s+<p>\s+<b>Website:</b>\s+<a href=\"(.*?)\">(.*?)</a>\s+</p>\s+<p>\s+(.*?)</p>~s";
          
          preg_match_all($regex, $getinfo, $critinfo);
          preg_match_all("~<li>\s+(.*?)</li>~s", $getinfo, $servinfo);
          preg_match_all("~<h4>Hospital\s+Quality\s+and\s+Rating\s+information</h4>\s+<p>Data\s+based\s+on\s+2010\s+Health\s+Quality\s+Alliance\s+database</p>\s+<p>\s+<b>(.*?)</b><br>\s+(.*?)</p>~s", $getinfo, $mortality);
          preg_match_all("/(\d+)?\.?(\d+)?%/", $mortality[2][0], $number);
                   
          $name = $critinfo[1][0];
                
          $address = preg_replace('/\s\s+/', ' ', $address);
          $number = implode(",", $number[0]);
          $servinfo = implode(",", $servinfo[1]);
                  
          $sql = "INSERT INTO hospital (name, address, servinfo, mortality) VALUES ('$name', '$address', '$servinfo', '$number')";
          $exec_sql = mysql_query($sql);                   
      }
      } 
  }   
           
?>

 

print_r($link) shows this :-

 

Array
(
    [0] => Array
        (
            [0] => Alabama
            [1] => District of Columbia
            [2] => Kentucky
            [3] => Montana
            [4] => Ohio
            [5] => Texas
            [6] => Alaska
            [7] => Florida
            [8] => Louisiana
            [9] => Nebraska
            [10] => Oklahoma
            [11] => Utah
            [12] => America Samoa
            [13] => Georgia
            [14] => Maine
            [15] => Nevada
            [16] => Oregon
            [17] => Vermont
            [18] => Arizona
            [19] => Hawaii
            [20] => Maryland
            [21] => New Hampshire
            [22] => Pennsylvania
            [23] => Virgin Islands
            [24] => Arkansas
            [25] => Idaho
            [26] => Massachusetts
            [27] => New Jersey
            [28] => Puerto Rico
            [29] => Virginia
            [30] => California
            [31] => Illinois
            [32] => Michigan
            [33] => New Mexico
            [34] => Rhode Island
            [35] => Washington
            [36] => Colorado
            [37] => Indiana
            [38] => Minnesota
            [39] => New York
            [40] => South Carolina
            [41] => West Virginia
            [42] => Connecticut
            [43] => Iowa
            [44] => Mississippi
            [45] => North Carolina
            [46] => South Dakota
            [47] => Wisconsin
            [48] => Delaware
            [49] => Kansas
            [50] => Missouri
            [51] => North Dakota
            [52] => Tennessee
            [53] => Wyoming
        )

    [1] => Array
        (
            [0] => /hospitals-in/Alabama
            [1] => /hospitals-in/District-of-Columbia
            [2] => /hospitals-in/Kentucky
            [3] => /hospitals-in/Montana
            [4] => /hospitals-in/Ohio
            [5] => /hospitals-in/Texas
            [6] => /hospitals-in/Alaska
            [7] => /hospitals-in/Florida
            [8] => /hospitals-in/Louisiana
            [9] => /hospitals-in/Nebraska
            [10] => /hospitals-in/Oklahoma
            [11] => /hospitals-in/Utah
            [12] => /hospitals-in/America-Samoa
            [13] => /hospitals-in/Georgia
            [14] => /hospitals-in/Maine
            [15] => /hospitals-in/Nevada
            [16] => /hospitals-in/Oregon
            [17] => /hospitals-in/Vermont
            [18] => /hospitals-in/Arizona
            [19] => /hospitals-in/Hawaii
            [20] => /hospitals-in/Maryland
            [21] => /hospitals-in/New-Hampshire
            [22] => /hospitals-in/Pennsylvania
            [23] => /hospitals-in/Virgin-Islands
            [24] => /hospitals-in/Arkansas
            [25] => /hospitals-in/Idaho
            [26] => /hospitals-in/Massachusetts
            [27] => /hospitals-in/New-Jersey
            [28] => /hospitals-in/Puerto-Rico
            [29] => /hospitals-in/Virginia
            [30] => /hospitals-in/California
            [31] => /hospitals-in/Illinois
            [32] => /hospitals-in/Michigan
            [33] => /hospitals-in/New-Mexico
            [34] => /hospitals-in/Rhode-Island
            [35] => /hospitals-in/Washington
            [36] => /hospitals-in/Colorado
            [37] => /hospitals-in/Indiana
            [38] => /hospitals-in/Minnesota
            [39] => /hospitals-in/New-York
            [40] => /hospitals-in/South-Carolina
            [41] => /hospitals-in/West-Virginia
            [42] => /hospitals-in/Connecticut
            [43] => /hospitals-in/Iowa
            [44] => /hospitals-in/Mississippi
            [45] => /hospitals-in/North-Carolina
            [46] => /hospitals-in/South-Dakota
            [47] => /hospitals-in/Wisconsin
            [48] => /hospitals-in/Delaware
            [49] => /hospitals-in/Kansas
            [50] => /hospitals-in/Missouri
            [51] => /hospitals-in/North-Dakota
            [52] => /hospitals-in/Tennessee
            [53] => /hospitals-in/Wyoming
        )

    [2] => Array
        (
            [0] => Alabama
            [1] => District of Columbia
            [2] => Kentucky
            [3] => Montana
            [4] => Ohio
            [5] => Texas
            [6] => Alaska
            [7] => Florida
            [8] => Louisiana
            [9] => Nebraska
            [10] => Oklahoma
            [11] => Utah
            [12] => America Samoa
            [13] => Georgia
            [14] => Maine
            [15] => Nevada
            [16] => Oregon
            [17] => Vermont
            [18] => Arizona
            [19] => Hawaii
            [20] => Maryland
            [21] => New Hampshire
            [22] => Pennsylvania
            [23] => Virgin Islands
            [24] => Arkansas
            [25] => Idaho
            [26] => Massachusetts
            [27] => New Jersey
            [28] => Puerto Rico
            [29] => Virginia
            [30] => California
            [31] => Illinois
            [32] => Michigan
            [33] => New Mexico
            [34] => Rhode Island
            [35] => Washington
            [36] => Colorado
            [37] => Indiana
            [38] => Minnesota
            [39] => New York
            [40] => South Carolina
            [41] => West Virginia
            [42] => Connecticut
            [43] => Iowa
            [44] => Mississippi
            [45] => North Carolina
            [46] => South Dakota
            [47] => Wisconsin
            [48] => Delaware
            [49] => Kansas
            [50] => Missouri
            [51] => North Dakota
            [52] => Tennessee
            [53] => Wyoming
        )

)
1

 

Earlier it was giving an error without  if (is_array($link)) {

 

Fatal error: Cannot use string offset as an array 

 

However after adding it, it wont go to /hospitals-in/District-of-Columbia which is $link[1][1];

 

Can someone please point me my mistake

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.