2010-12-15 4 views
2

Ist dies überhaupt möglich ...Extrahieren Sie die href aus einer URL mit einer Klasse mit PHP?

Sagen, ich habe einen Text mit einem Link mit einer Klasse von ‚Klick‘:

<p>I am some text, i am some text, i am some text, i am some text 
<a class="click" href="http://www.google.com">I am a link</a> 
i am some text, i am some text, i am some text, i am some text</p> 

PHP, die Verbindung mit Klassennamen erhalten, ‚Klick‘, dann bekommst du den href-Wert?

+0

Alles, was Sie brauchen, ist hier: http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662 phpQuery sollte tun, was Sie sehr leicht brauchen –

Antwort

6

Es gibt ein paar Möglichkeiten, dies zu tun, ist die schnellste XPath zu verwenden:

$dom = new DOMDocument; 
$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 

$nodeList = $xpath->query('//a[@class="click"]'); 
foreach ($nodeList as $node) { 
    $href = $node->getAttribute('href'); 
    $text = $node->textContent; 
} 
+0

+1, sehr gute Möglichkeit, das gewünschte Ergebnis zu erreichen. – Paul

2

Sie brauchen eigentlich nicht Ihr Leben zu erschweren überhaupt:

$string='that html code with links'; 
// while matches found 
while(preg_match('/<a class="click" href="([^"]*)">/', $string, $matches)){ 
    // print captured group that's actually the url your searching for 
    echo $matches[1]; 
} 
+1

Ich denke, Sie müssen noch die [berühmte Bobince-Antwort über das Parsen von HTML mit regulären Ausdrücken] entdecken (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454 # 1732454). Du wirst es danach nie wieder tun wollen ... :) – netcoder

+1

Dies ist ein einfaches Beispiel, warum all diese Dinge auf diese Weise zu erschweren? – s3v3n

Verwandte Themen