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

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.