Toon posts:

[php] preg_replace met enter er bij?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi.,

Ik heb deze code om [ i ] en [ / i ] (zonder spaties) te gebruiken in mijn site.
PHP:
1
2
3
<?
$content=preg_replace("/(\\[i\])(.*?)(\\[\/i\])/","<I>\\2</I>",$content);
?>

Maar als ik nu een text type:
code:
1
2
3
4
5
[i]Hoi allemaal

Alles goed?

Met mij wel[/i]

Dan wijzigd hij het niet naar <I>.
Ik moet dus voor zorgen dat ie enter-proof is.
Hoe?

overgens werkt
code:
1
[i]Hoi alles goed, met mij wel , doei[/i]

Wel goed

:?
Help me! Dankje :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
g modifier gebruik is het makkelijkst:
code:
1
$content = preg_replace("/\\[i\](.*?)[\/i\]/g", "<I>\\1</I>", $content);

[edit]
moet dus s zijn ipv g :?

  • Dryw.Filtiarn
  • Registratie: September 2001
  • Laatst online: 18-03 12:10
Volgens mij deed "s" toch hetzelfde of niet :?

=( Protected by witchcraft )=


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
sterker nog, het moet s zijn, niet g :o oeps :) hoe ik erbij kom :?

  • tomato
  • Registratie: November 1999
  • Niet online
marcusk: sterker nog, het moet s zijn, niet g :o oeps :) hoe ik erbij kom :?
De /g modifier bestaat niet voor PCRE regexen in PHP. In perl is /g de global modifier, welke ervoor zorgt dat er na een match verder gezocht wordt naar een mogelijke volgende match. preg_replace() in PHP doet dat uit zichzelf al en voor preg_match() hebben ze (ipv gewoon een /g modifier te accepteren) een tweede functie preg_replace_all() gemaakt.

De /s modifier laat inderdaad een . ook newlines matchen, net als de perl /s modifier doet.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
aha, vandaar :)
Pagina: 1