Kjapp og trygg hosting for Wordpress

Omgjøre html tag til php verdi

Marketing

Medlem
For å vise verdier fra en database er det lagt inn tagger i templaten, {tag1} {tag2} {tag3} osv. Alle verdiene er tall. Hvordan kan jeg omgjøre {tag1} til en php $verdi som kan brukes i et regnestykke?
 
A

aabbcc

Guest
Mulig jeg har misforstått hva du prøver på, men noe sånt:
$verdi = intval(tag1);
Eller floatval for desimaltall.

AABBCC
 

adeneo

Medlem
Nå er jeg ikke sikker på om jeg forstår dette i det hele tatt, men er det noe du har satt inn selv, eller er det et templating system som brukes ?

De fleste templating system lar deg sette inn verdier rett i html'en, slik som dette:
Kode:
<div>
      <form>
            <p>User Information:</p>
            <label>Name: {$name|capitalize}</label>
            <label>Addr: {$address|escape}</label>
            <label>Date: {date_format:"%b %e, %Y"}</label>
            <p>{tag1}</p>
      </form>
</div>

Slike "curlybraces" variabler brukes i Smarty, Twig, Django og en hel haug med templating systemer, og de har normalt alle forskjellige metoder for å hente verdier fra slike "templating variables", for eksempel ville det i Smarty vært:

PHP:
{php}
$verdi = $this->get_template_vars('tag1');
{/php}

eller noe slikt er ofte vanlig :

PHP:
{php}
$this->assign('verdi','tag1');
{/php}
 

Marketing

Medlem
Templaten var opprinnelig .html men er gjort om til .php. Hver underside har egen template hvor innholdet hardkodes og tagger benyttes for å hente og vise diverse data fra databasen. Template er uten header og footer.

For å vise innhold fra databasen trenger jeg bare å bruke braces {} rundt et tag-navn slik {alder}. Så vil jeg bruke php for å sjekke om alder er over 25 og vise forskjellig innholdet til folk over/under 25 år.

$verdi = intval("{alder}"); gir verdi 0 og ikke alderen
 

Marketing

Medlem
Det ser ut til at {tag1} er et "object" og ikke "string" eller "int". Er det mulig å bruke __set(), __get(), eller __toString() for å lese objektet og sette tallverdien i en variabel?
 

Marketing

Medlem
Forsøker å printe verdien til en annen variabel slik at den nye variablen får verdien (og ikke bare viser verdien). Bruker denne koden.

$x = new stdClass;
$x->foo = "{tag1}";
$foo = $x->foo;
ob_start();
$v = var_export($foo, true);
echo $v;
$stdClass = ob_get_contents();
ob_end_clean();
$alder = $stdClass;

Verdien på {tag1} er 25 men koden ser ikke ut til å virke slik jeg trodde.
echo $alder[0] <------ gir ' og ikke 2
echo $alder[1] <------ gir { og ikke 5

Hva er feil i koden?
 
Sist redigert:
Topp