Brauche Hilfe mit Preg_match und Preg_replace
gp812
- php
Hallo.
Habe ein Problem, und zwar wird bei mir in einem großen String ein Text mit regex gesucht und muss dann ersetzt werden.
Code sieht etwa so aus:
bla bla bla
{#CSS::test.css, test1.css, test2.css}
bla bla bla
{#CSS::test3.css, test4.css, test5.css}
bla bla bla
Ich lasse ein Script drüber laufen, was so eine Funktion enthält:
$pattern = '/\{#CSS::.* ?\}/';
preg_match($pattern, $page, $subpatterns);
preg_replace('/\{#CSS::.* ?\}/', '', $page);
foreach($subpatterns as $links)
{
// tu was
}
Und da kommt es zu Problemen. Gefunden wird nur erstes Eintrag ( da wo test, test1 und test2 stehen). Nächste Zeile wird nicht gefunden.
Da preg_replace tut auch nicht, d.h. es wird einfach nichts ersetzt.
Könnte mir bitte jemand damit helfen?
Bin für jede Hilfe dankbar.
MFG
gp812
Hallo,
$pattern = '/{#CSS::.* ?}/';
preg_match($pattern, $page, $subpatterns);
preg_replace('/{#CSS::.* ?}/', '', $page);
foreach($subpatterns as $links)
{
// tu was
}
>
' ?' Halte ich wegen dem '.\*' für überflüssig.
Probiere es mal mit dem Modifier U am Schluss. Also:
'/\{#CSS::.\*\}/U'
Gruß
Alex
Hallo,
' ?' Halte ich wegen dem '.*' für überflüssig.
Probiere es mal mit dem Modifier U am Schluss. Also:
'/{#CSS::.*}/U'Gruß
Alex
Hm. Hat nichts gebracht.
Es wird immer noch nur ein Satz gefunden. :-((
Hi gp812!
Hm. Hat nichts gebracht.
Es wird immer noch nur ein Satz gefunden. :-((
Warum verwendest du dann preg_match und nicht preg_match_all? ;-)
(Okay, weil du Letzteres wahrscheinlich nicht kanntest...)
MfG H☼psel
Hi gp812!
Hm. Hat nichts gebracht.
Es wird immer noch nur ein Satz gefunden. :-((
Warum verwendest du dann preg_match und nicht preg_match_all? ;-)
(Okay, weil du Letzteres wahrscheinlich nicht kanntest...)MfG H☼psel
Hab ich auch schon probiert :-)
Jetzt wird mir klar, dass ich die Ausgabe von der Funktion einfach falsch bearbeitet habe.
Danke Hopsel.