hjælp med noget BBcode

Tags:    php

Hej alle.

Jeg leger lidt i at lave en BBcode, men er stødt på et problem da jeg gerne ville lave en ['code] og ['/code] hvor den kan vise php farverne i.

Her er min kode. Den virker fint, men når jeg prøver at få highlight_string($1) ind i den, så gider den intet.

Hvad er problemet? :/


Fold kodeboks ind/udKode 


og her er teksten den læser fra

Fold kodeboks ind/udKode 


Jeg har prøvet alt.



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Har du overvejet at du ikke kan highlighte en variabel, der ikke er sat?

Jeg ser ingen steder, at du erklærer $1 og giver den en værdi. Så tror da pokker den ikke kan finde ud af det.



' er sat i for ikke at forvirre sidens egen BBcode



Kan sagtens få den til at skrive det hele ind i!
Men jeg kan bare ikke få den til at highlight min tekst, den siger bare: highlight_string(<?php echo "test"; ?>;);

Så min variabel bliver sat af den tekst jeg ber den om at skrive. F.eks. ['code]Skriver teksten her til en variable kaldt $1['/code]



Indlæg senest redigeret d. 15.06.2007 10:40 af Bruger #11184
Ved godt at man heller ikke kan bruge et tal i en variable, men det er den eneste måde den gider poste det der bliver skrevet



Jonas, det er fordi du ikke bare kan bruge en funktion i din string. Den eneste udvej jeg kan se, er at bruge preg_match og så finde alle
Fold kodeboks ind/udKode 
tags, hvorefter du highlighter dem, og replacer så erstatter dem.



Derudover, så har du skrevet:
"bla bla' . highlight_string($1) . 'bla bla"

Den færdige streng vil så være netop:
"bla bla' . highlight_string($1) . 'bla bla"

Det vil den fordi du bruger " til at åbne med, men du bruger ' omkring highlight_string delen. Problemet kan _ikke_ løses ved at bruge de rette, da highlight_string vil blive kørt når strengen bliver erklæret.



Kan ikke få det til at virke på nogen måder, og hvis jeg selv skal give alle koderne en farve, så vil det tage lang tid.

Tak for jeres hjælp.



$tekst = preg_replace("/\\[code\\](.+?)\\[\\/code\\]/e", "highlight_string(\\\\1)", $tekst);



t