Brauche Hilfe mit Preg_match und Preg_replace
    
gp812
    
    
      
    
  - php
 nicht angemeldet
 nicht angemeldetHallo.
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.