Wieder einmal Reg Exp

Katjusha

Mitglied
Ich habe mich nun durch diverse Tutorials und auch den RegEx Coach als Software probiert, aber irgendwie komme ich nicht auf das Ergebnis was ich will... Mein Ziel ist es den Inhalt zwischen <tr> und </tr> herauszufiltern und anzuzeigen!

Der Text im $buffer ist sagen wir:

<tr> <td colspan="6" class="LISTSPACE" >" *blablablablablablabla* </td> </tr>


Nun habe ich versucht so weiterzumachen:

preg_match_all("<tr[^>]*>(.*?)</tr>", $buffer, $treffer);


Die Serverantwort war daraufhin:

Warning: Unknown modifier ']' in


Was ist daran falsch? *heul*
 
Probiers mal so:
preg_match_all("#<tr\[^>\]*>(.*?)</tr>#", $buffer, $treffer);

habs nicht ausprobiert!
mb fanste
 
PHP:
preg_match_all("=<tr[^>]*>(.*)</tr>=",$buffer,$mat);

Du hast kein Start und End Delimiter festgelegt (hier das '='). Das war glaub ich das Problem.

MfG Mau
 
Zuletzt bearbeitet:
ok, daß mit dem Delimiter fehlte!
aber da kommt nun überhaupt kein ergebnis bzw der Bildschirm bleibt leer

hab mal einfach eine internetseite mit tabellen nun in den Buffer geladen und hat auch alles wunderbar geklappt aber er zeigt kein Ergebnis an! :(

Hab mal den Buffer von Hand mit einer Tabelle gefüllt:

$buffer = "<table><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>";

nun sollte er ja mir mittels

for ($i=0; $i< count($treffer[0]); $i++)
{
echo "matched: " . $treffer[0][$i] . "\n";
echo "part 1: " . $treffer[1][$i] . "\n";
echo "part 2: " . $treffer[3][$i] . "\n";
echo "part 3: " . $treffer[4][$i] . "<br>\n\n";
}

alle Ergebnisse ausgeben oder?
 
Zuletzt bearbeitet:
Mh, zeig doch mal dein Code. Dann kann man vielleicht mehr draus schließen.
 
Probiers mal so. Weiß nicht, ob es dann überhaupt noch klappt, oder ob wieder n Fehler kommt
preg_match_all("#<tr(.*)>(.*?)</tr>#", $buffer, $treffer);
 
Code:
$buffer = "<table><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>";  
preg_match_all("=<tr[^>]*>(.*?)</tr>=", htmlentities($buffer), $treffer);  

for ($i=0; $i< count($treffer[0]); $i++)     {    
echo "matched: " . $treffer[0][$i] . "\n";    
echo "part 1: " . $treffer[1][$i] . "\n";    
echo "part 2: " . $treffer[3][$i] . "\n";    
echo "part 3: " . $treffer[4][$i] . "<br>\n\n";  }

Das wäre nun der Code...
 
Hm, leider geht es doch noch nicht so wie ich wollte...

Wenn ich einen $buffer einfach als einen String festlege haut alles hin, aber für den Fall das ich eine Internetseite einlade zeigt er nichts an. Könnte das mit den Anführungszeichen zusammenhängen oder wie oder was? :(

Im RegEx Coach habe ich bereits ein passendes Pattern gefunden und bin ziemlich begeistert, aber wenn ich eine Internetseite einlade haut es irgendwie nicht hin.
 
Zurück