PHP DomXPath - 选择除标题,内容和页脚外的其他代码
问题描述:
我第一次使用DomXPath,但不知道如何选择一些html代码。PHP DomXPath - 选择除标题,内容和页脚外的其他代码
例如,我已经有了:
<!DOCTYPE html>
<html lang="">
<head>
<title>Dodmond</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
</head>
<body id="top">
<div class="header">
header content
</div>
<div class="content">
content
</div>
<div class="footer">
footer content
</div>
<a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
<!-- JAVASCRIPTS -->
<script src="layout/scripts/jquery.min.js"></script>
<script src="layout/scripts/jquery.backtotop.js"></script>
<script src="layout/scripts/jquery.mobilemenu.js"></script>
<script src="layout/scripts/jquery.flexslider-min.js"></script>
</body>
</html>
,我需要做2种选择。先用以前头的div代码
<!DOCTYPE html>
<html lang="">
<head>
<title>Dodmond</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
</head>
<body id="top">
其次的代码后页脚DIV
<a id="backtotop" href="#top"><i class="fa fa-chevron-up"></i></a>
<!-- JAVASCRIPTS -->
<script src="layout/scripts/jquery.min.js"></script>
<script src="layout/scripts/jquery.backtotop.js"></script>
<script src="layout/scripts/jquery.mobilemenu.js"></script>
<script src="layout/scripts/jquery.flexslider-min.js"></script>
</body>
</html>
我怎样才能做到这一点?我应该使用什么?
谢谢
编辑:我发现了如何删除所有div,但我不知道如何代码头和页脚后代码之前分开。
目前,我有这样的:它可以给我一个变量的代码
$html = file_get_contents('..');
$doc = new \DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
$finder = new \DomXPath($doc);
foreach ($finder->evaluate('//div') as $node) {
$node->parentNode->removeChild($node);
}
。我怎样才能分割它?
答
所以我不能完全肯定,如果你仍然需要在这个问题上帮助,但我有一个regex
,将你的“头” <div>
之前匹配的一切:
^<[\w\n\s="<>\/\-,.#!m]+(?=<div)
模式上面将匹配的这个块您HTML
:
<!DOCTYPE html>
<html lang="">
<head>
<title>Dodmond</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link href="layout/styles/layout.css" rel="stylesheet" type="text/css" media="all">
</head>
<body id="top">
至于你HTML
尾部,实在是有点太棘手的<div class="footer">
标签之后得到的一切,但如果你从它切换至footer
,您可以轻松完成此操作。下面是一个使用footer
的例子:
<footer class="footer">
footer content
</footer>
下会匹配一切从</footer>
一路直至收盘</html>
标签:
(<\/footer>)[\w\n\s="<>\/\-,.#!m]+<\/html>
请注意:以上regex
包括</footer>
。希望这可以帮助!
谢谢。我通过添加注释''解决了页脚,然后使用爆炸解压缩代码。 –