protected function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $dElements = array(0 => array(1), 1 => array(2), 2 => array(3), 3 => array(4), 4 => array(5)); $arr = array(); foreach ($dElements as $dId => $dArr) { $dayMenu = ''; foreach ($dArr as $dRow) { $element = $xpath->query('/html/body/div[2]/div[2]/article/div/div/p[' . $dRow . ']'); foreach ($element as $e) { $dayMenuExploded = explode(PHP_EOL, $e->nodeValue); $foodArray = array(); foreach ($dayMenuExploded as $foods) { $foods = parent::cleanStr($foods); if (!empty($foods)) { $foodArray[] = preg_replace('/([\\t0-9, ]+$)/', '', $foods); } } $dayMenu = implode(' / ', $foodArray); } } $weekDay = parent::weekNumToText($dId); $arr[$weekDay] = parent::fixSpaces(preg_replace('/[0-9, ]+$/', '', $dayMenu)); } if (!empty($arr)) { return $arr; } return false; }
/** * @param string $html HTML document * @return boolean|array */ public function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $elements = $xpath->query('//html/body/div/div/div/article/section/div/p'); $arr = array(); $i = 1; if (!is_null($elements)) { foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $dish = parent::fixSpaces(trim(utf8_decode($node->nodeValue))); if (!empty($dish)) { $arr[$i][] = parent::fixSpaces(trim($node->nodeValue)); } } $i++; } } foreach ($arr as $dayNo => $dayDishArr) { $weekDay = parent::weekNumToText($dayNo + 1); $dishes[$weekDay] = implode(' / ', $dayDishArr); } if (!empty($dishes)) { return $dishes; } return false; }
/** * @param string $html HTML document * @return boolean|array */ public function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $elements = $xpath->query('//*[@id="o-learys-forum-helsinki"]'); $i = 0; $arr = array(); foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $htmlString = $doc->saveHTML($node); if (preg_match('/<strong>O\'Learys Forum Helsinki<\\/strong>/', $htmlString)) { preg_match_all("/<strong>([a-zA-Z]+) [0-9\\. ]+<\\/strong> <p>([a-zA-Z0-9\\’\\'\\,\\.\\-\\_\\)\\(äöÄÖ ]+)10€/", $htmlString, $res); if (isset($res[2])) { foreach ($res[2] as $result) { $weekDay = parent::weekNumToText($i); $arr[$weekDay] = $result; $i++; } } } } } if (empty($arr)) { return false; } return $arr; }
/** * @param string $html HTML document * @return boolean|array */ public function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $dElements = array(0 => array(2, 3, 4), 1 => array(8, 9, 10), 2 => array(14, 15, 16), 3 => array(20, 21, 22), 4 => array(26, 27, 28)); $arr = array(); $i = 0; foreach ($dElements as $dId => $dArr) { $dayMenu = array(); foreach ($dArr as $dRow) { $element = $xpath->query('//*[@id="lounaslistaTable"]/tr[' . $dRow . ']/td[1]'); foreach ($element as $e) { $dayMenu[] = trim($e->nodeValue); } } $weekDay = parent::weekNumToText($i); $arr[$weekDay] = parent::fixSpaces(trim(implode(' / ', $dayMenu))); $i++; } if (!empty($arr)) { return $arr; } return false; }
protected function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $element = $xpath->query('//*[@id="menu"]/div[*]'); $arr = array(); $i = 0; $lunchListInHTML = $doc->saveHTML($element->item(0)); $lunchListInArray = explode('<hr class="mini">', $lunchListInHTML); foreach ($lunchListInArray as $lunchPerDay) { $foods = preg_replace('/^[a-zA-Z]{2} [0-9]{1,2}\\.[0-9]{1,2}\\./', '', trim(strip_tags($lunchPerDay))); $foodsArray = explode(PHP_EOL, $foods); $dayMenu = array(); foreach ($foodsArray as $food) { $dayMenu[] = preg_replace('/ ([a-zA-Z,]+)$/', ' (${1})', parent::cleanStr($food)); } $weekDay = parent::weekNumToText($i); $arr[$weekDay] = parent::fixSpaces(implode(' / ', $dayMenu)); $i++; } if (!empty($arr)) { return $arr; } return false; }
/** * @param string $html HTML document * @return boolean|array */ public function HTMLtoLunchArray($html) { $xml = simplexml_load_string($html); foreach ($xml->channel as $channel) { foreach ($channel->item as $item) { $data = $item->description; $doc = new DOMDocument(); @$doc->loadHTML($data); $xpath = new DOMXpath($doc); $elements = $xpath->query('//p'); $foodArrs = array(); $i = -1; if (!is_null($elements)) { foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { if (preg_match('/Maanantai|Tiistai|Keskiviikko|Torstai|Perjantai/i', $node->nodeValue)) { $i++; } elseif (preg_match('/tervetuloa|P.*iv.*n j.*lkiruoka|pienet muutokset/i', $node->nodeValue)) { continue; } else { if ($i > -1 && strlen($node->nodeValue) > 3) { $weekDay = parent::weekNumToText($i); $foodArrs[$weekDay][] = utf8_decode(trim($node->nodeValue)); } } } } } $arr = array(); foreach ($foodArrs as $weekDay => $foodArr) { $arr[$weekDay] = parent::cleanStr(str_replace('*, ', '', parent::fixSpaces(implode(' / ', $foodArr)))); } continue 2; } } if (!empty($arr)) { return $arr; } return false; }
protected function HTMLtoLunchArray($html) { $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $elements = $xpath->query('//*[@id="ctl00_ContentPlaceHolder1_TemplateArea_TC30900_CellContent"]/div/div[2]/div[2]/div/div/span[*]/span[2]/span[2]'); $arr = array(); $i = 0; if (!is_null($elements)) { foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $weekDay = parent::weekNumToText($i); $arr[$weekDay] = parent::fixSpaces(trim(utf8_decode($node->nodeValue))); $i++; } } } if (!empty($arr)) { return $arr; } return false; }