Esempio n. 1
0
function outputScrape($url)
{
    $returnvalue = "";
    $data1 = preg_replace('#(<\\/ul>\\s*)+#i', '</ul>', scrapePage($url));
    $data1a = str_replace('files//', 'http://resources21.org/cl/files/', $data1);
    $data2 = preg_replace(array('/<head>(.*)<\\/head>/iUs', '/<html>/', '/<\\/html>/', '/<body>/', '/<\\/body>/', '/<\\/td><td>/'), "", $data1a);
    $returnvalue .= '<div id="lessonplan-content">';
    $doc = new DOMDocument();
    $doc->loadHTML($data2);
    libxml_use_internal_errors(false);
    $xpath = new DOMXpath($doc);
    $elements = $xpath->query('//ul');
    $elementsh = $xpath->query("//*[@class='secHed']");
    $header = array();
    if (!is_null($elementsh)) {
        foreach ($elementsh as $elementh) {
            $header[] = "<h3>" . $elementh->nodeValue . "</h3>";
        }
    }
    if (!is_null($elements)) {
        $i = 0;
        foreach ($elements as $element) {
            $returnvalue .= '<div id="' . $element->getAttribute('id') . '">' . $header[$i] . "<ul>";
            $nodes = $element->childNodes;
            foreach ($nodes as $node) {
                $returnvalue .= '<li>' . innerXML($node) . "</li>\n";
            }
            $returnvalue .= "</ul></div>";
            $i++;
        }
        $returnvalue .= "</div>";
    }
    // $returnvalue = "<[CDATA[ " . $returnvalue ." ]]>";
    return $returnvalue;
}
Esempio n. 2
0
 function timetable($route, $stopcode)
 {
     $this->get_data(sprintf('http://www.tfl.gov.uk/tfl/syndication/feeds/html/timetables/buses/%s_%s.htm', $route, $stopcode), NULL, 'html-dom');
     $css2xpath = new CSS2XPath();
     $xpath = $css2xpath->transform('.TT_DayType');
     $nodes = $this->xpath->query($xpath);
     foreach ($nodes as $node) {
         if ($node['class'] == 'TT_DayType c5') {
             $day = (string) $node->tr->td->p;
             continue;
         }
         if (!$day) {
             continue;
         }
         $headers = $node->tr[0]->th;
         $items = $node->tr[1]->td;
         for ($i = 0; $i < count($headers); $i++) {
             $header = preg_replace('/\\s+/', ' ', (string) $headers[$i]);
             $item = isset($items[$i]->table) ? innerXML($items[$i]->table->tr->td) : outerXML($items[$i]);
             $this->results[$day][$header] = $item;
         }
     }
 }