2017-08-01 4 views
0

DomXPathを初めて使用していますが、htmlコードの選択方法はわかりません。PHP DomXPath - ヘッダー、コンテンツ、フッター以外の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"> 
 
<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 フッター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>

<!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を削除する方法を見つけましたが、私は、ヘッダーとフッター後コードの前コードを分離する方法がわからない:

はあなたに

編集ありがとうございました。

$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); 
    } 

一つの変数に私のコードを与える:私はこれを持っている瞬間

。どうすれば分割できますか?

答えて

1

だから私はあなたがまだこの問題についてのヘルプが必要な場合は、完全にはよく分からないが、私はあなたの「ヘッダ」<div>前に、すべてのものと一致しますregexを持っている:

^<[\w\n\s="<>\/\-,.#!m]+(?=<div) 

上記のパターンは、このチャンクと一致しますあなたのHTML:あなた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"> 

、あなたがからそれを切り替えた場合、あなたの<div class="footer">タグの後にすべてを取得するために少しあまりにもトリッキーですが、からfooterまで、これを簡単に実行できます。以下はfooterの使用例である:

<footer class="footer"> 
    footer content 
</footer> 

以下は、終了</html>タグまで</footer>からすべての方法をすべてを一致します。

(<\/footer>)[\w\n\s="<>\/\-,.#!m]+<\/html> 

注意してください:regex上記</footer>が含まれています。お役に立てれば!

+0

ありがとうございました。 '<! - End of the Footer - >'というコメントを追加してからフッタを解決し、その後にexplodeを使ってコードを抽出しました。 –

関連する問題