<?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 . "')]]");
foreach ($elements as $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://w...content-available-to-author-only...e.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+cXVlcnkoIi8vKlt0ZXh0KClbY29udGFpbnMoLiwgJyIgLiAkdmFsdWUgLiAiJyldXSIpOwogICAgICAgIHZhcl9kdW1wKCRlbGVtZW50cyk7CiAgICAgICAgaWYgKCFpc19udWxsKCRlbGVtZW50cykpIHsKCiAgICAgICAgICAgIGZvcmVhY2ggKCRlbGVtZW50cyBhcyAkZWxlbWVudCkgewogICAgICAgICAgICAgICAgdmFyX2R1bXAoJGVsZW1lbnQpOwogICAgICAgICAgICAgICAgZWNobyAiXG4xLlsiIC4gJGVsZW1lbnQtPm5vZGVOYW1lIC4gIl1cbiI7CgogICAgICAgICAgICAgICAgJG5vZGVzID0gJGVsZW1lbnQtPmNoaWxkTm9kZXM7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkbm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKCRub2RlLT5ub2RlVmFsdWUgIT0gbnVsbCkgJiYgKCRub2RlLT5ub2RlVmFsdWUgPT09ICR2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnMi4nIC4gJG5vZGUtPm5vZGVWYWx1ZSAuICJcbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICR4cGF0aCA9IHByZWdfcmVwbGFjZSgiL1wvdGV4dFwoXCkvIiwgIiIsICRub2RlLT5nZXROb2RlUGF0aCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnMy4nIC4gJHhwYXRoIC4gIlxuIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiRvID0gbmV3IERldmVsb3BlcnNVdGlscygpOwoKJG8tPmV4dHJhY3QoJ2h0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLnJvL3ByZXR1cmlfY2FueW9uXzQtaW4tMV9zdHlsdXNfYnVuZGxlX3BhY2tfY25nLWRzMDNfMTk5MDYyLmh0bScsJ0NhbnlvbiA0LWluLTEgU3R5bHVzIGJ1bmRsZSBwYWNrIENORy1EUzAzJyk7