Text zwischen P-Tag auslesen

Identität

Erfahrenes Mitglied
Ich habe einen Quelltext. Dort kommt beispielweise folgender Code 5x vor: <p class="info">TEXT</p>. Ich würde nun gern alle 5 Texte die im P-Tag stehen, auslesen.

Kann mir jemand einen Tipp geben, wie ich das am besten anstelle? Mit RegEX habe ich derzeit noch nicht gearbeitet, bin aber lernfreudig (falls es hier benötigt wird?!)

preg_match müsste dafür doch geeignet sein, oder? Nur ich weiß nicht, wie ich nur den Text dazwischen auslesen kann.
 
Die Frage ist ob du erstmal die p-Tags innerhalb des Quelltextes finden musst oder ob du nur den jeweiligen Text zwischen den p-Tags herausfiltern musst.

Im zweiten Fall solltest du dir vielleicht auch mal strip_tags anschauen.
 
@timestamp
Was mir auch aus diesem Tutorial nicht klar hevorgeht: Kann ich denn damit nur den Text zwischen "<p class="info">" und "</p>" extrahieren? Geht doch gar nicht?!

@tombe
Entfernt doch nur die Tag oder? Die Tags kommen ja mitten im Qulltext vor, von daher kann ich nicht einfach alle HTML-Tags entfernen.

EDIT: Okay, scheinbar geht es doch mit PREG_MATCH. Teste ich gerade noch ...
 
Zuletzt bearbeitet:
Ich hab auch so ein ähnliches Problem :
PHP:
 <?PHP
  //
  // Text, der durchsucht werden soll
  $subject = file_get_contents ("http://www.news.at");
  //
  $pattern =('="/(<h1.*>)(a-zA-Z0-9)(<\/h1>)/isxmU"=is');
  print_r ($pattern);
  //
  // RegExp auswerten
  //
  $result = preg_match($pattern, $subject, $subpattern);
  //
  // Ergebnis ausgeben
  //
  
 print_r ($subpattern);
?>

es passiert nix..
 
Nimm doch bitte, bitte DOMDocument - ist doch dafür gemacht....

Abgesehen davon ist das, was du da versuchst, Content-Theft (Diebstahl copyrightgeschützten Materials). Wenn die das wollten, hätten die dafür ne API bereitgestellt ;)
 
also statt file_get_contents .. DOM******!

ich hab jetz den Code bissl umgewandelt wo ich drin als 1. prüfen möcht ob überhaupt <h1> enthalten ist.. und dann soll er mir ausgeben was in <h1>::? </h1> enthalten ist.

PHP:
 <?PHP
  //
  // Text, der durchsucht werden soll
  $subject = file_get_contents ("http://www.allhoteldeals.net");
  //
  $pattern =('="/(<h1.*>)(a-zA-Z0-9)(<\/h1>)/isxmU"=is');
  //print_r ($pattern);
  //
  // RegExp auswerten
  //
  do {
	if('="/(<h1.*>)*(<\/h1>)/isxmU"=is' == $subject){
		 
	  $reg = "";
	  $result = preg_match($pattern, $subject, $reg);
  
	$hier = $reg[1].$reg[2];
	print_r ($hier);}
	else {print "False";}
?>
 
Warum jetzt nciht das Dom-Objekt?
PHP:
    $dom = new DOMDocument();
    $dom->load($html);
    $h1List = $dom->getElementsByTagName('h1');
    if($h1List->length == 0){
        print_r("keine h1");
    }else{
        foreach($h1List as $h1){
            print_r($h1->nodeValue);
        }
    }
 
Zurück