Dornii: eregi_replace

Hallo, habe ein Problem,

ich möchte mit eregi_replace in einem String nach einem bestimmten Suchmuster suchen und dieses dann gegebenenfalls ersetzen.
So hab ich mir das gedacht:

for ($z=0; $z<$anzahl; $z++) {
      $zeilen = eregi_replace ("(define('$schluessel[$z]', ')(*)(');)","\1 $werte[$z] \3",$zeilen);
   }

Leider mach ich dabei irgendwas verkehrt und komme nicht dahinter, was das sein könnte.

Im Browser gibts diese Fehlermeldungen:

Warning: REG_BADRPT: in c:\apache\htdocs\test\test.php on line 17

Warning: REG_BADRPT: in c:\apache\htdocs\test\test.php on line 17

Warning: REG_BADRPT: in c:\apache\htdocs\test\test.php on line 17

...

Wäre überaus dankbar für Hilfe.

  1. In der error-log steht noch, dass in der browscap.ini in zeile 8206 ein Fehler ist. Das wäre das hier:

    browser=AE/2.1(Linux)

    Liegts vielleicht an dem?

  2. hi du :)

    So hab ich mir das gedacht:

    for ($z=0; $z<$anzahl; $z++) {
          $zeilen = eregi_replace ("(define('$schluessel[$z]', ')(*)(');)","\1 $werte[$z] \3",$zeilen);
       }

    hmhm ich hab das eben mal genauso übernommen wie du da geschrieben hast und für die Variablen Schluessel, Werte usw. irgendwas eingesetzt.

    Ich würde erstmal sagen, dass du bei...

    for ($z = 0; $z < $anzahl; $z++)
     {
      $zeilen = eregi_replace ("(define('$schluessel[$z]', ')(*)(');)","\1 $werte[$z] \3", $zeilen[$z]);
     }

    "$zeilen" vergessen hast [$z] für die entsprechende Zeile anzugeben.

    Zudem mag PHP deinen * nicht. Ich hab daraus mal ein .* gemacht.

    Weiterhin bezweifle ich stark, dass PHP mit deinen ganzen Klammern nicht durcheinander kommt.

    Versuch mal die Klammern in eckige Klammern zu setzen. Also so:

    for ($z = 0; $z < $anzahl; $z++)
     {
      echo $zeilen = eregi_replace ("(define[(]'$schluessel[$z]', ')(.*)('[)];)","\1 $werte[$z] \3", $zeilen[$z]);
     }

    Aber irgendwo hängts scheinbar immernoch... was für nen komplizierten Code baust da zsam??

    Ich tipp noch was wenn ich mehr hab.

    LG,
    Robert

    PS: Auch mal lesen: http://www.selfphp.info/funktionsreferenz/regulaere_ausdruecke_posix/eregi_replace.php

    1. Juhuu, es geht:

      for ($z=0; $z<$anzahl; $z++) {
            $zeile = eregi_replace ("(define[(]'$schluessel[$z]', ')(.*)('[)];)","\1 $werte[$z] \3",$zeile);
         }
         echo $zeile."<br>";

      $zeilen war eigentlich verkehrt, weil es war kein Array, sondern eben nur eine Zeile. Es lag an den Klammern und dem Punkt vor dem Stern.

      Danke, super.