2012-07-08 6 views

Antwort

10

Ich habe gerade einen Blick auf dem HTML-DOM-Parser, versuchen:

$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

Dieser Code funktioniert nicht für mich (mehr? --- Die Antwort ist älter als die neueste Version der Bibliothek), weil Suche mehr als ein Element zurückgeben kann. Um es zum Laufen zu bringen, muss ich einen zweiten Parameter mit dem Wert 0 hinzufügen, um folgendes zu finden: $ html-> find ('title', 0) -> plaintext; – BlaM

+0

nicht funktioniert .... –

+0

die Antwort ist falsch - siehe meine getestete Antwort unter – Innate

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

Haben Sie diesen Code getestet? –

+0

ja! hat diesen Code getestet. [look myblog] (http: // softuses.com/how-to-extract-title-und-meta-description-using-php-simple-html-dom-parser) – liuqing

+0

Ich habe diesen Code und es funktionierte in extrahieren Titel. Danke –

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

$html->find('title') einen Array zurück

so sollten Sie $html->find('title',0) verwenden, so tut meta [description ]

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; 

HINWEIS: Die Namen der Meta-Tags sind casesensitive!

+0

Spot on übergeben werden. +1 für das Ergreifen nach Tag und Attribut. – timofey

0

können Sie PHP-Code verwenden und so einfach zu wissen. wie hier

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

+0

dies funktioniert nicht für Titelverwandte :) –

+0

Diese Funktion scheitert in einigen Fällen schrecklich – Innate

1

Die richtige Antwort lautet:

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

Der obige Code wird HTML in ein Objekt Format, dann ist die Methode find sucht nach einem Meta-Tag mit dem Namen Beschreibung, und schließlich müssen Sie den Wert der zurück Inhalt des Meta-Tags, nicht der interne Text oder Klartext, wie von anderen beschrieben.

Dies wurde getestet und in Live-Code verwendet. Beste

+0

Welche var sollte die Web-URL halten? –

3

von LeiXC Lösung oben genommen, müssen Sie die einfache HTML-DOM-Klasse verwenden:

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

ich diesen Code getestet haben und ja ist es Groß- und Kleinschreibung (einige Meta-Tags ein Kapital D für die Beschreibung verwenden)

Hier ist ein Fehler für Rechtschreibfehler überprüft:

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

fand ich die ea sy Art und Weise Beschreibung

$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**"> 

nehmen Wenn Ihre Linie zusätzliche Leerzeichen enthält, dann versuchen, diese

$title = trim($title); 
$description = trim($description); 
Verwandte Themen