1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?php class DevelopersUtils { public function extract($url, $value) { $dom = new DOMDocument(); $file = 'content.txt'; //$current = file_get_contents($url); $current = CurlTool::downloadFile($url, $file); //file_put_contents($file, $current); @$dom->loadHTMLFile($current); //use DOMXpath to navigate the html with the DOM $dom_xpath = new DOMXpath($dom); $results = $dom_xpath->query('//td1'); // (or any offending element) foreach ($results as $invalidNode) { $parentNode = $invalidNode->parentNode; $children = $invalidNode->childNodes; foreach ($children as $childNode) { $parentNode->insertBefore($childNode, $invalidNode); } $parentNode->removeChild($invalidNode); } //die(); //$dom_xpath = new DOMXpath($dom); $elements = $dom_xpath->query("//*[text()[contains(., '" . $value . "')]]"); var_dump($elements); if (!is_null($elements)) { foreach ($elements as $element) { var_dump($element); echo "\n1.[" . $element->nodeName . "]\n"; $nodes = $element->childNodes; foreach ($nodes as $node) { if (($node->nodeValue != null) && ($node->nodeValue === $value)) { echo '2.' . $node->nodeValue . "\n"; $xpath = preg_replace("/\/text\(\)/", "", $node->getNodePath()); echo '3.' . $xpath . "\n"; } } } } } } $o = new DevelopersUtils(); $o->extract('http://www.price.ro/preturi_canyon_4-in-1_stylus_bundle_pack_cng-ds03_199062.htm','Canyon 4-in-1 Stylus bundle pack CNG-DS03'); |
PD9waHAKCmNsYXNzIERldmVsb3BlcnNVdGlscyB7CgogICAgcHVibGljIGZ1bmN0aW9uIGV4dHJhY3QoJHVybCwgJHZhbHVlKSB7CgogICAgICAgICRkb20gPSBuZXcgRE9NRG9jdW1lbnQoKTsKCiAgICAgICAgJGZpbGUgPSAnY29udGVudC50eHQnOwogICAgICAgIC8vJGN1cnJlbnQgPSBmaWxlX2dldF9jb250ZW50cygkdXJsKTsKICAgICAgICAkY3VycmVudCA9IEN1cmxUb29sOjpkb3dubG9hZEZpbGUoJHVybCwgJGZpbGUpOwogICAgICAgIC8vZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICRjdXJyZW50KTsKCiAgICAgICAgQCRkb20tPmxvYWRIVE1MRmlsZSgkY3VycmVudCk7CgogICAgICAgIC8vdXNlIERPTVhwYXRoIHRvIG5hdmlnYXRlIHRoZSBodG1sIHdpdGggdGhlIERPTQogICAgICAgICRkb21feHBhdGggPSBuZXcgRE9NWHBhdGgoJGRvbSk7CgogICAgICAgICRyZXN1bHRzID0gJGRvbV94cGF0aC0+cXVlcnkoJy8vdGQxJyk7IC8vIChvciBhbnkgb2ZmZW5kaW5nIGVsZW1lbnQpCiAgICAgICAgZm9yZWFjaCAoJHJlc3VsdHMgYXMgJGludmFsaWROb2RlKSB7CiAgICAgICAgICAgICRwYXJlbnROb2RlID0gJGludmFsaWROb2RlLT5wYXJlbnROb2RlOwogICAgICAgICAgICAkY2hpbGRyZW4gPSAkaW52YWxpZE5vZGUtPmNoaWxkTm9kZXM7CiAgICAgICAgICAgIGZvcmVhY2ggKCRjaGlsZHJlbiBhcyAkY2hpbGROb2RlKSB7CiAgICAgICAgICAgICAgICAkcGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKCRjaGlsZE5vZGUsICRpbnZhbGlkTm9kZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcmVudE5vZGUtPnJlbW92ZUNoaWxkKCRpbnZhbGlkTm9kZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgCiAgICAgICAgLy9kaWUoKTsKICAgICAgICAKICAgICAgICAvLyRkb21feHBhdGggPSBuZXcgRE9NWHBhdGgoJGRvbSk7CiAgICAgICAgCiAgICAgICAgJGVsZW1lbnRzID0gJGRvbV94cGF0aC0+cXVlcnkoIi8vKlt0ZXh0KClbY29udGFpbnMoLiwgJyIgLiAkdmFsdWUgLiAiJyldXSIpOwogICAgICAgIHZhcl9kdW1wKCRlbGVtZW50cyk7CiAgICAgICAgaWYgKCFpc19udWxsKCRlbGVtZW50cykpIHsKCiAgICAgICAgICAgIGZvcmVhY2ggKCRlbGVtZW50cyBhcyAkZWxlbWVudCkgewogICAgICAgICAgICAgICAgdmFyX2R1bXAoJGVsZW1lbnQpOwogICAgICAgICAgICAgICAgZWNobyAiXG4xLlsiIC4gJGVsZW1lbnQtPm5vZGVOYW1lIC4gIl1cbiI7CgogICAgICAgICAgICAgICAgJG5vZGVzID0gJGVsZW1lbnQtPmNoaWxkTm9kZXM7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkbm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKCRub2RlLT5ub2RlVmFsdWUgIT0gbnVsbCkgJiYgKCRub2RlLT5ub2RlVmFsdWUgPT09ICR2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnMi4nIC4gJG5vZGUtPm5vZGVWYWx1ZSAuICJcbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICR4cGF0aCA9IHByZWdfcmVwbGFjZSgiL1wvdGV4dFwoXCkvIiwgIiIsICRub2RlLT5nZXROb2RlUGF0aCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnMy4nIC4gJHhwYXRoIC4gIlxuIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiRvID0gbmV3IERldmVsb3BlcnNVdGlscygpOwoKJG8tPmV4dHJhY3QoJ2h0dHA6Ly93d3cucHJpY2Uucm8vcHJldHVyaV9jYW55b25fNC1pbi0xX3N0eWx1c19idW5kbGVfcGFja19jbmctZHMwM18xOTkwNjIuaHRtJywnQ2FueW9uIDQtaW4tMSBTdHlsdXMgYnVuZGxlIHBhY2sgQ05HLURTMDMnKTs=
-
upload with new input
-
result: Runtime error time: 0.03s memory: 13064 kB signal: -1
Fatal error: Class 'DOMDocument' not found in /home/7o7bwE/prog.php on line 7


