title: PHP simple HTML dom parser and preg_split because clear <html> tags are missing
body: <p>I have a website that uses external data from a variety of different website sources. This works pretty well but I am struggling with one specific source. The issue is that the data-string is not bound by a clear html tag <code>&lt;&gt;</code> which means that I somehow need to split the data manually. If have done this before as well with preg but for the example below I struggle to find a solution.</p>
  
  <p>Example of the html data:</p>
  
  <pre><code>&lt;div class="column8 gerechten"&gt;
  
  &lt;h1&gt;Dagschotels&lt;/h1&gt;    
  
  &lt;img src="http://emmaseetcafe.nl/wp-content/uploads/2014/09/voorgerecht2.jpg" class="attachment-fullwidth wp-post-image" alt="dagschotel" /&gt;        
  
  &lt;p&gt;Elke week heeft Emma&amp;#8217;s nieuwe dagschotels op het menu staan. Een dagschotel is te bestellen voor € 9,00-. Alle dagschotels zijn ook als kinderdagschotel te verkrijgen voor slechts €5,-. Reserveren voor een daghap is mogelijk, zolang de voorraad strekt.&lt;br /&gt;
  &lt;br/&gt;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;28-02&lt;/strong&gt;Pasta Tonno&lt;br /&gt;
  &lt;strong&gt;1-03&lt;/strong&gt; Stampot andijvie met slavink&lt;br /&gt;
  &lt;strong&gt;2-03&lt;/strong&gt; Gyros wrap met gebakken aardappelen&lt;br /&gt;
  &lt;/br&gt;&lt;br /&gt;
  &lt;strong&gt;7-03&lt;/strong&gt; Erwtensoep met roggebrood&lt;br /&gt;
  &lt;strong&gt;8-03&lt;/strong&gt; Köfte met friet en salade&lt;br /&gt;
  &lt;strong&gt;9-03&lt;/strong&gt; Kipschnitzel met spinazie en gekookte aardappelen&lt;br /&gt;
  &lt;/br&gt;&lt;br /&gt;
  &lt;strong&gt;14-03&lt;/strong&gt; Sjasliek met rijst&lt;br /&gt;
  &lt;strong&gt;15-03&lt;/strong&gt; Kipsaté met nasi&lt;br /&gt;
  &lt;strong&gt;16-03&lt;/strong&gt; Scholfilet met friet en gemengde groenten&lt;br /&gt;
  &lt;/br&gt;&lt;br /&gt;
  &lt;strong&gt;21-03&lt;/strong&gt; Lente pasta ( verschillende lente groenten)&lt;br /&gt;
  &lt;strong&gt;22-03&lt;/strong&gt; Taco&amp;#8217;s met friet en salade&lt;br /&gt;
  &lt;strong&gt;23-03&lt;/strong&gt; Kip kerrie met rijst&lt;br /&gt;
  &lt;/br&gt;&lt;br /&gt;
  &lt;strong&gt;28-03&lt;/strong&gt; Schnitzel met friet en salade&lt;br /&gt;
  &lt;strong&gt;29-03&lt;/strong&gt; Gehaktbal met friet en rode kool&lt;br /&gt;
  &lt;strong&gt;30-03&lt;/strong&gt; Visstoofpotje met aardappelpuree&lt;/p&gt;
  &lt;p&gt;&lt;br/&gt;&lt;br /&gt;
  &lt;strong&gt;ZOLANG DE VOORAAD STREKT&lt;/strong&gt;&lt;br /&gt;
  RESERVEREN VAN DAGSCHOTELS IS MOGELIJK&lt;br /&gt;
  DAGSCHOTEL KOST € 9,00&lt;/p&gt;
  </code></pre>
  
  <p>The required output I need before post processing is something like:</p>
  
  <p>Array = ["28-02 Pasta Tonno",
          "1-03 Stampot andijvie met slavink",
          "7-03 Erwtensoep met roggebrood"]
  etc.</p>
  
  <h2>Update</h2>
  
  <p>I managed to isolate all the dates with simple dom which worked because there all enclosed by the <code>&lt;strong&gt;</code> tag. I used the following code:</p>
  
  <pre><code>             $html = file_get_html('http://emmaseetcafe.nl/menukaarten/dagschotels/', false, $this-&gt;getStreamContext());
               // start to find the meals
  
  
               // gets the main dish
               foreach ($html-&gt;find('div[class=column8 gerechten]') as $container) {
                  foreach ($container-&gt;find('p') as $p) {
                              $temp[] = $p-&gt;innertext;
  
               }
          }
  
      $temp = $temp[1];
  
  
  
      $html = str_get_html($temp);
  
      foreach ($html-&gt;find('strong') as $strong) {
          $temp_dates[] = $strong-&gt;innertext;
  
      }
  </code></pre>
  
  <p>The result is an array with all the dates in dd-mm .</p>
  
  <p>So now what remains is to isolate the actual meals from the following text string:</p>
  
  <pre><code>'&lt;strong&gt;02-05&lt;/strong&gt; Schnitzel met champignonsaus friet en salade&lt;br /&gt; &lt;strong&gt;03-05&lt;/strong&gt; Mexicaanse wrap met friet&lt;br /&gt; &lt;strong&gt;04-05&lt;/strong&gt; Pasta Tonno&lt;br /&gt; &lt;/br&gt;&lt;br /&gt; &lt;strong&gt;09-05&lt;/strong&gt; Gegrilde paprika met couscous&lt;br /&gt; &lt;strong&gt;10-05&lt;/strong&gt; Thaise Curry met rijst&lt;br /&gt; &lt;strong&gt;11-05&lt;/strong&gt; Pasta AOP&lt;br /&gt; &lt;/br&gt;&lt;br /&gt; &lt;strong&gt;16-05&lt;/strong&gt; Couscous met gegrilde kipfilet en geroosterde paprika&lt;br /&gt; &lt;strong&gt;17-05&lt;/strong&gt; Tartaar met gebakken ui , frietjes en doperwten&lt;br /&gt; &lt;strong&gt;'... (length=955)
  </code></pre>
  
  <h2>Update 2</h2>
  
  <p>I finally managed to solve it myself. I moved away from the simple dom at the end for the last part to remove the strong and the broken <code>&lt;br /&gt;</code> tag.</p>
  
  <pre><code>       //var_dump($meal_string);
      $meal_array = explode("&lt;br /&gt;",$meal_string);
  
  
      foreach ($meal_array as $meal){
          $meals_no_tags[]= strip_tags($meal);   // strip all php / html tags         
      }
  
  
      // structure the data by removing emply items
  
      foreach ($meals_no_tags as $meal_item){
          if (strlen($meal_item)&gt;3){
          $meal_temp[] = $meal_item;
          }
      }
  </code></pre>