Avatar billede diz Nybegynder
30. oktober 2003 - 15:38 Der er 5 kommentarer og
1 løsning

Udskiftning af streng med variabel

Hejsa,

Jeg er ved at lave et script der benytter templates. Jeg indlæser en fil som indeholder en masse html, sepereret med comments. Så tager jeg al html mellem 2 givne comments og gemmer dette i en streng. Dette kunne f.eks være en form. No problem.

Nu er det bare at jeg gerne ville kunne indsætte ####myvalue#### i denne html og når jeg så læste den ind skulle ####myvalue#### erstattes med en variabel af samme navn.

Dette skal gøres uden at jeg på forhånd ved hvilke ####myvalue#### der er i et givent stykke html. Hvis en variable ikke findes skal ####myvalue### bare erstates med ingenting.

Et eks:
Jeg henter følgende ind i en streng :

<table width="100%" border="0">
  <tr>
    <td><p>Standard:</p>
      <table width="95%" border="0" align="center">
        <tr>
          <td width="26%">Kost</td>
          <td width="74%"><input type="text" name="txtKost" value="####kost####"></td>
        </tr>
      </table></td>
  </tr>
<table>

Nu skal ####kost#### erstates med hvad der står i variablen $kost

Er der nogen der har ideer til hvordan dette gøres lettest?

/Sune
Avatar billede tipsen Nybegynder
30. oktober 2003 - 15:44 #1
Jeg vil foreslå dig at bruge et af de færdige templatesystemer i php - de kan præcis det du ønsker...
Avatar billede diz Nybegynder
30. oktober 2003 - 15:59 #2
ok....

Hvor finder jeg dem henne?
Avatar billede tipsen Nybegynder
30. oktober 2003 - 16:03 #3
Avatar billede likeaprayer Nybegynder
30. oktober 2003 - 21:40 #4
lidt slam kodet men virker :)

<?
$sys['kost'] = "hej med dig";
$sys['kost2'] = "hej med dig2";

$streng = "
<table width='100%' border='0'><tr>
    <td><p>Standard:</p>
      <table width='95%' border='0' align='center'>
        <tr>
          <td width='26%'>Kost</td>
          <td width='74%'><input type='text' name='txtKost' value='####kost####'></td>
        </tr>
            <tr>
          <td width='26%'>Kost2</td>
          <td width='74%'><input type='text' name='txtKost' value='####kost2####'></td>
        </tr>
      </table></td>
  </tr>
<table>
";


$replacement = array();
$pattern = array();
foreach($sys as $key => $value)
{
$replacement[] = $value;
$pattern[] = $key;
}
$realpattern = array();
foreach($pattern as $value)
{
$realpattern[] = "/\\####".preg_quote($value)."\\####/";
}

echo preg_replace($realpattern,$replacement, $streng);

?>
Avatar billede likeaprayer Nybegynder
30. oktober 2003 - 21:40 #5
og det var et svar :)
Avatar billede diz Nybegynder
31. oktober 2003 - 10:59 #6
Takker, har brugt det til inspiration, så du får lige lidt points...

/Sune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester