function action_page() { require_once 'exts/simple_html_dom.php'; $error = 0; $finds = null; $errormsg = ''; $postUrl = $_POST['url']; $postSelector = $_POST['selector']; $html = null; try { $html = file_get_html($postUrl); } catch (Exception $e) { $error = -400; } if ($html === null) { $errormsg = "Can't load url"; } else { $finds = $html->find($postSelector); if (count($finds) == 0) { $selparts = explode(' ', $postSelector); $finds = array($html); foreach ($selparts as $part) { if (strcasecmp($part, ' ') == 0) { continue; } $dotscount = substr_count($part, '.'); if ($dotscount > 1) { $classes = array_filter(explode('.', $part)); $newfinds = array(); foreach ($finds as $el) { $fndEls = $el->find('.' . reset($classes)); foreach ($fndEls as $fndEl) { $elClasses = array_filter(explode(' ', $fndEl->class)); $num = 0; foreach ($classes as $class) { if (in_array($class, $elClasses)) { $num = $num + 1; } } if ($num == count($classes)) { array_push($newfinds, $fndEl); } } } $finds = $newfinds; } else { $newfinds = array(); foreach ($finds as $el) { $fndEls = $el->find($part); foreach ($fndEls as $fndEl) { array_push($newfinds, $fndEl); } } $finds = $newfinds; } if (count($finds) == 0) { break; } } } } $data = array('error' => $error); if ($finds !== null && count($finds) != 0) { $arrEls = array(); foreach ($finds as $el) { array_push($arrEls, $el->outertext); } $data['result'] = $arrEls; } if ($errormsg !== null) { $data['errormsg'] = $errormsg; } $view = new JsonView(); $view->generate($data); if ($html != null) { $html->clear(); unset($html); } }