2016-05-14 72 views
1

我想找到與類名稱的div,但我沒有整個類的名稱。例如:尋找div類,其中包含字

<div class="article_main"> 
Article 
</div> 

代碼找到DIV:

$html = file_get_contents($_POST['url']); 
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'); 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 
$result = ''; 
foreach($xpath->evaluate('//div[@class="article"]/node()') as $childNode) { 
    $result .= $dom->saveHtml($childNode); 
} 

我想找到DIV,其中類包含單詞 「文章」。請幫忙。

回答

0

您可以在XPath使用contains

$xpath->evaluate('//div[contains(@class, "article")]/node()') 

測試:

<?php 
$html = '<div class="article_main">Article</div>'; 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 
$result = ''; 
foreach($xpath->evaluate('//div[contains(@class, "article")]/node()') as $childNode) { 
    $result .= $dom->saveHtml($childNode); 
} 
echo $result; 

輸出:

Article 
+0

你在3分鐘之前就得到了,也許他以後也是這樣! –

0

這是否已經做服務器端?如果沒有,那麼你可以使用jQuery做,那簡直就是兩種:

var results = $(div).filter(function(){ return $(this).hasClass('whatever'); /* whatever is class name here */ }); 

var results = $(div).filter(function(){ return $(this).text().indexOf("text to search for") !== -1 }); 

對於服務器端處理,簡單地使用AJAX將其發送給你的PHP代碼