2012-07-08 64 views

回答

10

我剛接手一看HTML DOM解析器,請嘗試:

$html = new simple_html_dom(); 
$html->load_file('xxx'); //put url or filename in place of xxx 
$title = $html->find('title'); 
echo $title->plaintext; 

$descr = $html->find('meta[description]'); 
echo $descr->plaintext; 
+3

這段代碼不適用於我(再也不是? - 答案比庫的最新版本舊),因爲find可能會返回多個元素。爲了讓它工作,我需要添加第二個參數,其值爲0以查找:$ html-> find('title',0) - > plaintext; – BlaM 2014-04-01 14:42:28

+0

無法正常工作.... – 2015-10-12 06:13:14

+0

答案不正確 - 請參閱我的測試答案 – Innate 2016-03-29 08:05:30

2
$html = new simple_html_dom(); 
$html->load_file('xxx'); 
//put url or filename in place of xxx 
$title = array_shift($html->find('title'))->innertext; 
echo $title; 
$descr = array_shift($html->find("meta[name='description']"))->content; 
echo $descr; 
+0

您是否測試了此代碼? – 2012-09-24 18:58:46

+0

是的!測試了這個代碼。 [看myblog](http:// softuses。com/how-to-extract-title-and-meta-description-using-php-simple-html-dom-parser) – liuqing 2012-09-25 06:44:15

+0

我使用了這段代碼,它在提取標題時起作用。謝謝 – 2012-12-20 17:27:41

5
$html = new simple_html_dom(); 
$html->load_file('http://www.google.com'); 
$title = $html->find('title',0)->innertext; 

$html->find('title')會返回一個數組

所以你應該使用$html->find('title',0),所以確實元[描述]

21
$html = new simple_html_dom(); 
$html->load_file('some_url'); 

//To get Meta Title 
$meta_title = $html->find("meta[name='title']", 0)->content; 

//To get Meta Description 
$meta_description = $html->find("meta[name='description']", 0)->content; 

//To get Meta Keywords 
$meta_keywords = $html->find("meta[name='keywords']", 0)->content; 

注意:meta標記的名稱區分大小寫!

+0

點通過。通過標記和屬性抓取+1。 – timofey 2013-04-02 05:43:45

0

你可以使用php代碼和如此簡單的知道。像這裏

$ result ='site.com'; $ tags = get_meta_tags(「html /".$ result);

+0

這不會爲標題隊友:) – 2014-09-28 18:46:00

+0

此功能在某些情況下可怕的失敗 – Innate 2016-03-29 08:11:45

1

正確的答案是:

$html = str_get_html($html); 
$descr = $html->find("meta[name=description]", 0); 
$description = $descr->content; 

上面的代碼獲取HTML成一個對象的格式,然後查找方法查找名爲描述meta標籤,最後你需要返回的值元標記的內容,而不是其他人所概述的內文或明文。

這已經過測試並在實時代碼中使用。最佳

+0

哪個var應該保存網址? – 2016-09-13 09:44:17

3

從LeiXC的溶液中取出以上,你需要使用簡單的HTML DOM類:

$dom = new simple_html_dom(); 
$dom->load_file('websiteurl.com');// put your own url in here for testing 
$html = str_get_html($dom); 
$descr = $html->find("meta[name=description]", 0); 
$description = $descr->content; 
echo $description; 

我已經測試此代碼,是的,它是區分大小寫的(一些meta標籤使用說明資本d)

下面是一些錯誤的拼寫錯誤檢查:

if(is_object($html->find("meta[name=description]", 0))){ 
    echo $html->find("meta[name=description]", 0)->content; 
} elseif(is_object($html->find("meta[name=Description]", 0))){ 
    echo $html->find("meta[name=Description]", 0)->content; 
} 
0
$html->find('meta[name=keywords]',0)->attr['content']; 
$html->find('meta[name=description]',0)->attr['content']; 
0

我找到了EA SY方式,採取描述

$html = new simple_html_dom(); 
$html->load_file('your_url'); 
$title = $html->load('title')->simpletext; //<title>**Text from here**</title> 
$description = $html->load("meta[name='description']", 0)->simpletext; //<meta name="description" content="**Text from here**"> 

如果行包含多餘的空格,那麼試試這個

$title = trim($title); 
$description = trim($description); 
相關問題