這是你在找什麼?你可以試試SimpleHTMLDOM。然後你可以運行類似...
$html = new simple_html_dom();
$html->load_file('fileToParse.html');
$count=0;
foreach($html->find('fb:like') as $element){
$count+=1
}
echo $count;
這應該工作。
我看起來更進一步,發現這一點。我從PHP.net上的DOMDocument中獲取了此信息。
$dom = new DOMDocument;
$dom->loadHTML('fileToParse.html'); // or $dom->loadXML('fileToParse.html');
$likes = $dom->getElementsByTagName('fb:like');
$count=0;
foreach ($likes as $like) {
$count+=1;
}
這一次之後,我被卡住
$file=file_get_contents("other.html");
$search = '/<fb:like[^>]*>/';
$count = preg_match_all($search , $file, $matches);
echo $count;
//Below is not needed
print_r($matches);
這是不過正則表達式,是相當緩慢的。我試過了:
$dom = new DOMDocument;
$xpath = new DOMXPath($dom);
$dom->load("other.html");
$xpath = new DOMXPath($dom);
$rootNamespace = $dom->lookupNamespaceUri($dom->namespaceURI);
$xpath->registerNamespace('fb', $rootNamespace);
$elementList = $xpath->query('//fb:like');
但是得到了和你一樣的錯誤。
這聽起來像一個非常直接的解決方案,所以我決定與它一起運行。下面是我最終與任何人討厭正則表達式的代碼。 (\ w +)/','<\ 1 namespace =「\ 2」 ','postContent);' '//重新構建任何名稱間隔標籤' '$ postContent = preg_replace('/ <(\ w +)namespace =「(\ w +)」/','<\ 1 :\ 2',$ postContent);' – lupos