Schnaps: Regulären Ausdruck öfter anwenden

Hallo

Ich möchte einen bestimmten Regulären Ausdruck "über einen String laufen lassen" und dabei soll er mir halt immer die gefundenen Sachen speichern.

Ich kenne das leider nur aus Perl, da würde es mit meiner momentanen Methode gehen, in PHP geht es so aber nicht.

Währe nett wenn mir einer die entsprechende PHP Syntax verraten würde. (In Perl müßte hinter den Reg. Ausdruck noch ein 'g' für global, das Perl sich merkt wo es den Ausdruck gefunden hat und danach weiter macht.

Hier mal mein Code:

<?
$string="01012004_1=11_2&01012004_2=11_2&01012004_3=11_3&01012004_4=11_4&02012004_1=12_1&02012004_2=12_2&02012004_3=12_3&02012004_4=12_4&03012004_1=13_1&03012004_2=13_2&03012004_3=&03012004_4=&04012004_1=14_1&04012004_2=14_2&04012004_3=&04012004_4=&05012004_1=&05012004_2=&050.......
.......
12004_3=&05012004_4=&06012004_1=&06012004_2=&06012004_3=&06012004_4=&07012004_1=17_1&07012004_2=&07012004_3=&07012004_4=&08012004_1=&08012004_2=&08012004_3=&08012004_4=&09012004_1=&09012004_2=&09012004_3=&09012004_4=&10012004_1=&10012004_2=&10012004_3=&10012004_4=&11012004_129012004_3=&29012004_4=&30012004_1=&30012004_2=&30012004_3=&30012004_4=&31012004_1=&31012004_2=&31012004_3=&31012004_4=&Submit=Eintragen";

$regex="/(\d{2})(\d{2})(\d{4})_\d{1}=(\d{1,2})/";

if (preg_match($regex,$string,$matche)){
$tag[]=$matche[1];
$monat[]=$matche[2];
$jahr[]=$matche[3];
$apot_id[]=$matche[4];
}
for ($i=0;$i<count($tag);$i++){
echo "Eintrag $i:<br><br>";
echo "Tag:".$tag[$i]."<br>";
echo "Monat:".$monat[$i]."<br>";
echo "Jahr:".$jahr[$i]."<br>";
echo "apot_id:".$apot_id[$i]."<br>";
echo "<hr>";
}
?>

Die Punkte sind natürlich hier nur damit nicht alles von dem String bedeckt ist.

Die Ausgabe habe ich nur zum testen hinten dran gehängt.
Nur mit if anstatt des while geht es, aber damit finde ich logischerweise nur die ersten matches.

MFG
Schnaps

  1. Geht wie folgt:

    global $variable1, $variable2;

    Danach einfach Variablen den Inhalt zuweisen.

    1. Geht wie folgt:

      global $variable1, $variable2;

      Danach einfach Variablen den Inhalt zuweisen.

      Ist die Antwort wirklich für mich gedacht?

      1. sorry, falscher beitrag