PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : back reference geht nicht



Manfred-B
20-07-2000, 01:07
Hallo!
Um eine form eingabe zu prüfen und zu zerlegen setze ich auf PHP 3.0.16
seid einiger Zeit versuche ich jetzt rum:

preg_match("/(<.+?&#62 http://www.linuxforen.de/ubb/wink.gif(.+?)(<\/\1&#62 http://www.linuxforen.de/ubb/wink.gif/i","<html> blabla blabla </html>", $parts);

function print_matcharray($parts)
{
print "index 0: $parts[0]\n";
print "index 1: $parts[1]\n";
print "index 2: $parts[2]\n";
print "index 3: $parts[3]\n";
print "index 4: $parts[4]\n";
}
print_matcharray($parts);

\1 soll den fundstring der ersten klammer an seiner stelle einsetzen
Das funktioniert aber nicht.
wenn ich das /html tag durch \1 ersetze findet PHP ein ^A und auch die andern klammern finden wieder etwas. Was kann man da noch falsch machen?
Bitte erlöst mich von dieser Quahl http://www.linuxforen.de/ubb/frown.gif
vielen Dank
Manfred-B

Manfred-B
21-07-2000, 01:08
Hallo
Es ist mir echt Peinlich: Schon wieder muß ich mir selber Antworten
Das PHP Handbuch /usr/doc/packages/mod_php/doc/pcre.pattern.syntax.html enthält Fehler: Eine back reference muß in PHP mit 2 backslashes eingeleitet werden "\\2" dann funzt das einwandfrei http://www.linuxforen.de/ubb/biggrin.gif
Die beispiele in "function.preg-replace.html" haben mich darauf gebracht

Gruß
Manfred-B
ps: die Smilies im [ code ] hab ich schon öfters gesehen! Das UBB Skript sollte in den code-tags kein html und ubb code substituieren, das würde das posten von code (was ja oft vorkommt) sehr erleichtern