preg_match Problem

Ive

Mitglied
Mein Script soll BB-Code in HTML-Tags umwandeln! z.B. der Tag bold!
Hier geht es aber erstmal darum nur den String zu finden!

PHP:
if (preg_match("/^\[b\].*\[\/b\]$/i", "PHP ist toll."))
{
print "Es geht";
}
else
{
print "Es geht nicht";
}

Wo liegt mein Fehler? Ich selbst bin leider noch nicht so fit mit Regulären Ausdrücken!
Ich hoffe ihr könnt mir helfen
 
Hallo,

Das wird so auch nicht funktionieren mach mal ^ und $ aus den Regulären Ausdruck ^ Steht nur für den Anfang und $ nur für das Ende ;-]

Und die if Bedingung wird dir Immer False ausgeben da im zu suchenden String kein [-b-] vorhanden ist siehe dein such String "PHP ist toll."

MfG Funjoy
 
Zuletzt bearbeitet:
Und die if Bedingung wird dir Immer False ausgeben da im zu suchenden String kein [-b-] vorhanden ist siehe dein such String "PHP ist toll."
Da hab ich nach dem erstellen, des Themas nicht drauf geachtet! Im eigentlichen Beitrag stand nämlich um PHP [-B-] und [-/B-] (das minus ist nur da, damit es hier nicht interpretiert wird!) herum, da man in diesem Forum leider den BB-Code nicht ausstellen kann, wurde das halt nicht mitgepostet!
Eigentlicher Code:
PHP:
if (preg_match("/^\[b\].*\[\/b\]$/i", "[-B-]PHP[-/B-] ist toll.")) // minus zeichen müsst ihr euch wegdenken! ohne diese würde hier BB-Code interpretiert werden!
{
print "Es geht";
}
else
{
print "Es geht nicht";
}
Wie müsste es richtig lauten?
 
PHP:
if (preg_match("^/\[b\].*\[\/b\]/i$", "[-B-]PHP[-/B-] ist toll."))
{
  print "Es geht";
}
else
{
  print "Es geht nicht";
}

Wenn ich das so schreibe, wird mir so ein Fehöer ausgegeben:

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in ...
 
Achso! Jetzt klappt es auch! Aber jetzt wo dies geht, möchte ich natürlich auch den String ändern!, Sodass "PHP" dann auch wirklich bold angezeigt wird!
Mein Code:
PHP:
print preg_replace("/\[B\](.*)\[\/B\]/", "/<B>(.*)\</B>/", "[-B-]PHP[-/B-] ist toll.");
Jetzt wird jediglich "(.*)" bold angezeigt! Wie muss ich das ändern, damit ich mein PHP bold bekommen?
 
wenn er bb-code erzeugen soll, musst du folgender massen vorgehen:
Code:
preg_replace ("'(\[B])(.+?)(\[\/B])'si", "<B>\\2</B>", $string);
)
 
Zurück