wfux: preg_match_all

Beitrag lesen

Hallo Leute,

Nabend

ich mühe mich ab mit preg_match_all. Das sah so einfach aus.

Was ist falsch an der Funktion?

function get_rows($data)
{
  preg_match_all ("|<tr>\s*(.*)\s*</tr>|U",$data,
                  $out[],PREG_PATTERN_ORDER);

if (!is_array($out)) return false;

$ret = array();
  foreach ($out as $line)
  {
    $ret[] = $line[1][0];
  }
  return $ret;
}

Ich will nun nach und nach eine Tabelle auseinandernehmen. Könnt Ihr mir helfen?

function get_rows($data)
{
  preg_match_all ("|<tr>\s*(.*)\s*</tr>|U",$data,$out[],PREG_PATTERN_ORDER);
  if (!is_array($out)) return false;

$ret = array();
  foreach ($out[0][0] as $line) {
    $ret[] = $line;
  }
}

Dies speichert jeweils den Inhalt zwischen "<tr>" und "</tr>" in $ret.

Sieht $data z.B. so aus:

$data = "<tr>blhahh</tr>\n<tr>jldhfjhj2</tr><tr>jdhfh3</tr>";

...dann wäre eben

in $ret[0] = "blhahh"
in $ret[1] = "jldhfjhj2"
in $ret[2] = "jdhfh3"

Mal davoin abgesehen, diese Funktion da, ...dein $ret-Array ist nach dem Funktionsausruf wieder weg (nur bevor du ectl. aus diesem Grunde wieder posten solltest), denn ich möcht ja NICHT annehmen, dass $ret  eine globale Variable ist ;o)...

Mal davon abgesehen.. die ausgebesserte Funktion geht bei mir ohne Probleme.

Grüße

dito.

Tom

wfux