phpbar.de logo

Mailinglisten-Archive

[php] Re: Frage zu Regular Expressions

[php] Re: Frage zu Regular Expressions

Martin Ramsch m.ramsch_(at)_computer.org
Mon, 11 Oct 1999 01:06:39 +0200


Franz Graf schrieb am Sonntag, den 10. Oktober 1999:
> Jetzt bin ich heute auf ein (selfmade) Konstrukt gestossen, dessen 
> Output ich zwar brauchen, aber leider nicht verstehen kann :(
> 
> eregi("([^/]+)[ ]$",$PHP_SELF,$regs);
> liefert mir
> $regs[0] =  _test.php3
> $regs[1] =  _test
> $regs[2] =  .php3
> 
> Das seltsame ist: wenn ich statt
> "([^/]+)[ ]$" ein "([^/]+)[X]$" 
> einsetze (wobei ich satt "X" eigentlich alles mögliche einsetzen 
> kann) bekomme ich das gleiche Ergebnis(?!).

Ich vermute, Du läßt Dich hier täuschen!

Denn da der Inhalt von $PHP_SELF sicher nicht mit einem Leerzeichen
endet (oder einem X), paßt der reguläre Ausdruck nicht und $regs wird
gar nicht verändert.  Die angezeigten Werte müssen schon vorher drin
gewesen sein!

Es ist grundsätzlich nicht verkehrt, die Registervariable zuvor
ausdrücklich zu löschen:

   unset($regs);
   if ( eregi('([^/]+)\.([^/.]+)$',$PHP_SELF,$regs) ) {
     echo "Muster paßt:<BR>\n";
     reset($regs);
     while( list($key,$val)=each($regs) ) {
        printf('$regs[%s] = "%s"'."<BR>\n", $key, $val);
     }
   } else {
     echo "Muster paßt nicht.\n";
   }

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 5244 5EF3 B0B1 3826  E4EC 8058 7B31 3AD7


php::bar PHP Wiki   -   Listenarchive