SmartFTP Skrevet 23. november 2010 Del Skrevet 23. november 2010 Helloi =) Er ikke så dreven i PHP, men har sittet å knotet litt. Det jeg ønsker er å kunne bruke forskjellige sideoppset (HTML-koder), men samme PHP-kode. La oss si at jeg har to forskjellige brukere. Den ene ønsker at siden skal se slik ut (stil1), og den andre vil at den skal se annerledes ut (stil2). For å slippe å lage en ny php-fil for hver forskjellige HTML-kode, ønsker jeg å kunne importere HTML-koden, konvertere tegn og sende ut. -- La oss si at bruker 1 ønsker index.php med hans type oppsett. Da henter vi HTMLOPPSETT_1_INDEX.html: Hei, kjære {BRUKER{BRUKERID}_KJONN}. God {INS_DAG} Bruker 2 ønsker en annen index.php. Da henter vi HTMLOPPSETT_2_INDEX.html: Halla {BRUKER{BRUKERID}_KJONN}. Nå er klokka {BBB_BLOKKE} -- Ser at det blir tungvindt å måtte lage en ny {} for hver eneste output som varierer. Så jeg lurer på; - Skjønner dere hva jeg vil og mener? - Har dere forslag til en enklere måte å gjøre alt dette på? - Mistenker store feil ved koden nedenfor også. Noen som ser problemer? (ingen feilmeldinger) <?php $Visning = file_get_contents("stilsider/stil" . $_GET["stil"] . "/" . $_GET["side"] . ".php"); preg_match_all("/{([^@]+)}/", $Visning, $Funnene); for ($i = 0; $i <= count($Funnene); $i++) { $Visning = str_replace("" . $Funnene[0][$i] . "", "", $Visning); } echo $Visning; ?> Lenke til kommentar
TheClown Skrevet 24. november 2010 Del Skrevet 24. november 2010 Sjekk ut Smarty. Det er ett template-system ganske likt det du holder på med her. De har god dokumentasjon og mange funksjoner. Mye bedre enn å konte med dette på egenhånd. Men hvorfor gjør du det på denne måten? Kan du ikke bare echoe og kjøre en if-spørring? if ($userid == 1) echo "Hei, kjære $KJONN. God $DAG"; else echo "Noe annet"; Lenke til kommentar
SmartFTP Skrevet 25. november 2010 Forfatter Del Skrevet 25. november 2010 (endret) Takk =) Joda, men syns PHP-kodene blir for rotete med så mye dilldall i. Mye enklere med rene koder syns jeg, både med tanke på koding og feilsøking. Har planer om ganske mange templates (og kanskje et par hundre brukere), så det blir uansett mye styr Endret 25. november 2010 av SmartFTP Lenke til kommentar
Milktea Skrevet 27. november 2010 Del Skrevet 27. november 2010 Er en del ulike måter å gjøre dette på, og det er ingen fasit. Hvis du ikke har bruk for eller ikke vil bruke et av de eksisterende systemene kan du smelle noe sammen ved bruk av printf. Her har du et ganske basic eksempel: /* Variabler fra $_GET, databaser eller liknended */ $name = 'Bob'; $sex = 'Male'; $time = date('g:i a'); /* I dette eksempelet har jeg bare gitt templatene et nummer, så vi velger nummer 2 her */ $template = 2; /* Legger inn alle variablene i en array. Kommentarene sier hva de blir substituert for */ $pcont = Array( $name, // %1$s $sex, // %2$s $time, // %3$s ); /* Funksjon for å hente templates og mate inn variablene */ function get_template($file, $args) { return vsprintf(file_get_contents($file), $args); } $cont = get_template($template . '.html', $pcont); echo <<<EOT <html> <body> Something ... <br /> $cont ... more stuff </body> </html> EOT; 1.html <table border="1"> <thead> <tr> <td>Name:</td> <td>Sex:</td> </tr> </thead> <tbody> <tr> <td>%1$s</td> <td>%2$s</td> </tr> </tbody> </table> 2.html Hi %1$s, welcome back. The time is %3$s<br /> Så lenge du holder styr på rekkefølgen på argumentene er ikke denne måten så aller verst. Fordelene er at du får HTML-filer uten PHP mikset inn. Ulempen er selvfølgelig at %1$s ikke sier deg veldig mye om hva som blir printet ut. 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å