Gilbert Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 DEFINE('NAME','Thomas'); $text = "Denne gutten heter {NAME}. Han er 12 år."; Beklager at jeg ikke kan komme med noe godt forslag selv, for dette er vrient. Resultatet jeg er ute etter er selvfølgelig at $text = "Denne gutten heter Thomas ...osv"; MEN det er ikke aktuelt å bruke vanlige variabler eller "...heter ".NAME.". Han er...". Jeg vil at det skal gjøres via regular expression, etter som $text er en input fra bruker :-) Lenke til kommentar
Gilbert Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Er ikke noe problem å finne ut hvilken funksjon jeg skal bruke :-) str_replace er har problemer med regexp, bruker ereg_replace el preg_replace til det. Problemet er hva jeg skal putte inni funksjonen. Lenke til kommentar
Drømmemannen Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Prøv $text = preg_replace("/\{NAME\}/", NAME, $text); Men det er ingen vits å bruke regexp hvis man kan klare seg uten. Edit: Glemte et par slasher Endret 30. mai 2005 av balletryne Lenke til kommentar
Gilbert Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Men har jeg lyst til å bruke regexp - fordi jeg aldri vet hvilke constants som eksisterer, derfor vil det alltid være variabelt hva brukeren skriver inn mellom brackets'ene :-) Lenke til kommentar
Drømmemannen Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Altså noe slikt som $text = preg_replace("/\{(.*?)\}/", $1, $text); Mulig du må bruke eval inni der slik at det blir ..., eval($1), ... eller ..., eval("$1"), ... Edit: Jeg ville kanskje satset på den siste. Prøv Endret 30. mai 2005 av balletryne Lenke til kommentar
Gilbert Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Oh yes den kan duge La meg bare få litt tid så skal jeg teste den Lenke til kommentar
Drømmemannen Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Det er en sikkerhetsrisiko med det scriptet. Med et slikt script gir du brukeren mulighet til å fritt kjøre selvvalgt kode. Tror du burde bytte ut regexp-et med "/\{[A-Z]*?\}/" Dermed begrenser du inputen til _kun_ store bokstaver, ingen andre tegn. Hvis du har mulighet til å sjekke inputen mot en forhåndsdefinert liste over lovlig input er det å foretrekke. Edit: Krøkkete formulering Endret 30. mai 2005 av balletryne Lenke til kommentar
Gilbert Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Tenkte å kjøre mot defined(), holder det sikkerhetsmessig? Lenke til kommentar
Drømmemannen Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Antar at kun store bokstaver som angir en defined variabel burde kunne holde. Det kommer litt an på hva som er definert. Finnes mye definert i php-biblioteket. Edit: Stavefeil. Jeg vet ikke om jeg selv ville stolt på at det holder. Det kommer litt an på hvordan nettsiden og koden er designet. Noen andre som har en formening? Endret 30. mai 2005 av balletryne Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå