将html页面存储在PHP变量中的正确方法,解析并显示它

时间:2017-10-27 12:13:12

标签: javascript php html simple-html-dom

实际上我正在使用simple_html_dom解析器来解析html页面。然后做了一些修改。现在想在我的页面中显示。

$page = file_get_html($url);
foreach($page->find('div#someDIv') as $e) {
    $e->style = 'display:none;';
}

foreach($page->find('td#Something') as $e) {
    $e->style = 'display:none;';
}
foreach($page->find('td#Something2') as $e) {
    $e->style = 'display:none;';
}

$page->save();

?>

现在我回应并展示它,

<?php echo $page; ?>

内容显示正常,但我看到一些java脚本错误导致我的剩余脚本无法执行。

我看到的错误是

  

未捕获的SyntaxError:无效或意外的令牌

     

未捕获的SyntaxError:意外的输入结束

这些错误在我echo $page

的行上

是否有更好的方式来显示内容,以便可以防止这些错误,并且可以执行它下面的javascript。

更新 我在这里看到错误, enter image description here

1 个答案:

答案 0 :(得分:0)

PHP有自己的类来处理HTML dom,称为DOMDocument。 你的例子:

$doc = new DOMDocument(); 
$doc->loadHTMLFile($url);

要查找dom元素,请使用XPath

$xpath = new DOMXpath($doc);

$elements = $xpath->query("*/td[@id='Something']");
if (!is_null($elements)) {
  foreach ($elements as $element) {
     $element.setAttribute('style','display: none;');
  }
}

echo $doc->saveHTML();