Avatar billede mrbs Nybegynder
26. januar 2009 - 14:00 Der er 9 kommentarer og
1 løsning

preg_replace af alle match

Hej!

Jeg har følgende preg_replace, som erstatter tags tilsvarende [bi 2008205201815.jpg]Alternativ[bi] med <img src="sti/2008205201815.jpg" alt="Alternativ" /> fra teksten i $contentText.

preg_replace("/\[bi (.+)\](.*?)\[bi\]/is", "<img src=\"uploads/images/original/\\1\" alt=\"\\2\" />", $contentText);

Men hvis jeg indsætter flere end et tag i $contentText, viser den ikke noget indhold mellem de to tags, og fejler også i replacementet.

Kan nogen lige gennemskue hvad der skal stå i stedet? :)

Tak på forhånd!
Avatar billede jakobdo Ekspert
26. januar 2009 - 14:14 #1
Kan du oræve at vise hvad din $contentText f.eks. kunne indeholde ? (altså flere [bi...] felter...
Avatar billede jakobdo Ekspert
26. januar 2009 - 14:14 #2
oræve = prøve. :o)
Avatar billede mrbs Nybegynder
26. januar 2009 - 14:26 #3
Det er bare tekst. For hver gang man indsætter [bi ... ... ]'tags, skal der i stedet indsættes et billede. Der kan være nogle paragraph-htmltags med i teksten...
Avatar billede welcor Nybegynder
26. januar 2009 - 14:26 #4
Er det så enkelt som at ændre flagene fra "is" til "gis" ?
Avatar billede elskermad.dk Nybegynder
26. januar 2009 - 14:36 #5
måske

preg_replace_all("/\[bi (.+?)\](.*?)\[bi\]/is", "<img src=\"uploads/images/original/\\1\" alt=\"\\2\" />", $contentText);
Avatar billede tmi Nybegynder
26. januar 2009 - 14:36 #6
preg_replace("/\[bi\s+([^\s\]]+)\s*\](.*)\[bi\]/Uis", "<img src=\"uploads/images/original/\\1\" alt=\"\\2\" />", $contentText);
Avatar billede jakobdo Ekspert
26. januar 2009 - 14:40 #7
Test lige her:

$output = preg_replace('/\[bi (\d+.jpg)\](.+?)\[bi\]/si', '<img src="$1" alt="$2" />', $input);
Avatar billede tmi Nybegynder
26. januar 2009 - 14:42 #8
Skal måske lige siges at modifier U som jeg tilføjede betyder ungreedy, så det er det samme som at lave + og * til +? og *?, så har jeg så tilføjet at hvis man indtaster fx 2 mellemrum før billedets navn og måske et mellemrum efter billedets navn, så fanger den det stadigvæk.
Avatar billede mrbs Nybegynder
26. januar 2009 - 14:48 #9
tmi>>> smukt!

Det er noteret, og det virker perfekt!

Takker mange gange - og du må gerne lægge et svar!
Avatar billede tmi Nybegynder
26. januar 2009 - 14:58 #10
Selv tak :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester