login  Naam:   Wachtwoord: 
Registreer je!
 Forum

UBB highlight_string

Offline Sitebase - 02/06/2007 12:53 (laatste wijziging 02/06/2007 12:54)
Avatar van SitebasePHP expert Ik wil als ik rond een string [code ][/code ] zet dat hij die code daartussen highlite maar dat doet hij dus niet. de volgende regel gebruik ik.

  1. $bericht = preg_replace ("#\[code\](.*)\[/code\]#", highlight_string('\\1'), $bericht);


In plaats van de gehighlighte code laat hij gewoon een 1 zien.

Weet iemand een oplossing?

9 antwoorden

Gesponsorde links
Offline citroen - 02/06/2007 13:00
Avatar van citroen Onbekend moet die 1 nie $1 zijn?
Offline Stijn - 02/06/2007 13:09
Avatar van Stijn PHP expert @citroen: nee , dat is een reference voor regulaire expressies (zoiets).

  1. $bericht = preg_replace ("#\[code\](.*)\[/code\]#", "highlight_string('\\1')", $bericht);
of
  1. $bericht = preg_replace ("#\[code\](.*)\[/code\]#", "highlight_string(\\1)", $bericht);
Offline Sitebase - 02/06/2007 13:18
Avatar van Sitebase PHP expert @stijn

Als ik jou oplossing probeer dan zet hij gewoon highlight_string(...) tussen men tekst. Dus hij voert die php functie niet uit.
Offline citroen - 02/06/2007 13:22 (laatste wijziging 02/06/2007 13:22)
Avatar van citroen Onbekend PHP.net: preg_replace -> \\n or $n
gaan blijkbaar beide
Offline Grayen - 02/06/2007 15:11 (laatste wijziging 02/06/2007 15:12)
Avatar van Grayen PHP ver gevorderde ... Deze vraag is zo vaak geweest...

Citaat:
e

If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string. Single quotes, double quotes, backslashes and NULL chars will be escaped by backslashes in substituted backreferences.

Only preg_replace() uses this modifier; it is ignored by other PCRE functions.

Opmerking: This modifier was not available in PHP 3.

Dus het moet als volgt, aangezien je php wilt uitvoeren op het tweede argument.

  1. $bericht = preg_replace('#\[code\](.*)\[/code\]#e', 'highlight_string("\\1")', $bericht);
Offline MindPrison - 02/06/2007 19:06
Avatar van MindPrison PHP gevorderde Het is wel veiliger om het volgende te doen (als er meer code tags in de tekst staan...):
  1. $bericht = preg_replace("/\[code\](.+?)\[\/code\]/e", "highlight_string('\\1')", $bericht);
Offline dotPixel - 03/06/2007 01:08 (laatste wijziging 03/06/2007 01:08)
Avatar van dotPixel PHP interesse Ik zou ook de modifier 's' gebruiken en eventueel de 'i' modifier, zodat hij case insensitive is. Met de modifier 's', werkt hij ook door newlines/over meerdere regels. En ik zou de 2e parameter op true zetten van de functie highlight_string, zodat hij het niet meteen print op je scherm.
Offline ladyhawk - 08/06/2007 18:21
Avatar van ladyhawk Nieuw lid de functie 'highlight_string' klopt niet, hij geeft het cijfer 1 terug omdat de waarde 'false' is.

De correcte manier om deze functie te gebruiken is bijvoorbeeld:

$input = highlight_string($input, true);

Ik hoop dat je eruit komt!
Offline Koen - 08/06/2007 18:49
Avatar van Koen PHP expert
Citaat:
de functie 'highlight_string' klopt niet, hij geeft het cijfer 1 terug omdat de waarde 'false' is.

De correcte manier om deze functie te gebruiken is bijvoorbeeld:

$input = highlight_string($input, true);

??
ik denk dat jij beter eens op http://www.php.net/highlight_string gaat kijken. highlight_string('<? echo "hoi" ?>'); is mogelijk.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.218s