Interpretarea unei variabile aflate intr-un cod HTML

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

oldmanxxxv
New Member
Mesaje: 3
Membru din: Vin Iul 04, 2014 1:27 pm

Interpretarea unei variabile aflate intr-un cod HTML

Mesajde oldmanxxxv » Vin Iul 04, 2014 2:03 pm

Poate ca este o banalitate dar inca nu i-am dat de cap.
Am o mica problema de interpretare a variabilelor dintr-un cod HTML ce este extras dintr-un tabel stocal in baza de date. Mentionez ca toate variabilele ce trebuiesc interpretate se regasesc pe pagina in care extrag informatia din baza de date.

Am creat un mic exemplu edificator sper:


<?php

// variabila ce trebuie interpretata
$an = date("Y");

// variabila ce contine mesajul
$var = "<html>
<head>
</head>
<body>
<center>
<div><font style=\"color:green; font-size:40px\">Acesta este un test din anul {$an}, pe care doresc sa-l rezolv</font></div>
</center>
</body>
</html>";

// interpretarea mesajului ce contine variabila
echo $var;
echo "<br /><br /><br />";


// conectarea la baza de date
$con = mysql_connect("localhost","root","")or die(mysql_error());
$db = mysql_select_db("test", $con)or die(mysql_error());

// interogarea bazei de date
$query = "Select * From `mail` Where `id` = 1 ";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

echo "<br /><br />";
// variabila ce contine mesajul in care exista una sau mai multe variabile ce trebuiesc interpretate
// variabilele ce trebuiesc interpretate exista pe pagina
echo $row['body_email'];
?>

Acesta este rezultatul pe care il obtin
captură.PNG
captură.PNG (22.97 KiB) Vizualizat de 2992 ori


Mentionez ca in site-ul pe care l-am creat, acest mesaj contine mai multe variabile si este trimis ca si email de confirmare intr-un concurs.
Momentan folosesc pentru corpul mesajului codul html in pagina care trimite email-ul pentru ca asa am rezultate. In momentul cand codul il scot din baza de date variabilele nu mai sunt interpretate, sunt trimise ca text.
Mentionez ca in tabel cand a fost salvat, codului html i-au fost inlaturate ghilimele duble si escaparile acestora pentru ca altfel nu ar fi fost interpretat corect.

As dori sa ma ajutati cu o idee despre cum se rezolva aceasta problema.
Multumesc.



MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: Interpretarea unei variabile aflate intr-un cod HTML

Mesajde MarPlo » Vin Iul 04, 2014 3:29 pm

Cursuri gratuite: | | | |

emanue1
PHPRomania Supporter
Mesaje: 12
Membru din: Joi Iun 05, 2014 1:16 pm

Re: Interpretarea unei variabile aflate intr-un cod HTML

Mesajde emanue1 » Vin Iul 04, 2014 3:42 pm

@Marplo - Nu mi se pare ok, te complici prea mult si rezolvi strict bucatica lui. Daca ai avea "Acesta este un test din anul {$an}, pe care doresc sa-l rezolv pentru suma {$10 sau 2 la $15} "?

Eu propun sa folositi sprintf http://ro1.php.net/sprintf

oldmanxxxv
New Member
Mesaje: 3
Membru din: Vin Iul 04, 2014 1:27 pm

Re: Interpretarea unei variabile aflate intr-un cod HTML

Mesajde oldmanxxxv » Vin Iul 04, 2014 4:22 pm

Multumesc frumos. Se pare ca asta este solutia .
Acum trebuie sa o adaptez la nevoile mele.

emanue1
PHPRomania Supporter
Mesaje: 12
Membru din: Joi Iun 05, 2014 1:16 pm

Re: Interpretarea unei variabile aflate intr-un cod HTML

Mesajde emanue1 » Vin Iul 04, 2014 4:35 pm


oldmanxxxv
New Member
Mesaje: 3
Membru din: Vin Iul 04, 2014 1:27 pm

Re: Interpretarea unei variabile aflate intr-un cod HTML

Mesajde oldmanxxxv » Vin Iul 04, 2014 11:42 pm

Multumesc ajutorului dat ambilor.


Am sa folosesc codul lui MarPlo pentru ca in email-ul pe care il trimit am intre 8-10 variabile. Unele dintre ele se repeta, astfel functia genereaza dinamic locul fiecareia.
Pentru cei care au site-ul hostat pe un server ce ruleaza versiuni mai mici de 5.3 veti primi mesajul de eroare:
Parse error: syntax error, unexpected T_FUNCTION

Asa ca a trebuit sa aranjez putin codul.

$data = array(
'an'=>date('Y')
);
$var = 'Test din anul {$an}, care e rezolvat';
echo $var .'<br>'; // Test din anul {$an}, care e rezolvat

function replace($m) {
GLOBAL $data;
return $data[$m[1]];
};

$var2 = preg_replace_callback('/{\$([^}]+)}/', "replace" , $var);
echo $var2; // Test din anul 2014, care e rezolvat

Pentru ca sa nu intalniti acea eroare atunci functia trebuie definita in afara preq_replace_callback, apoi trecuta ca si text in al doilea parametru.

Nici solutia sprintf() nu este rea doar ca nu imi ofera libertatea de a plasa oriunde variabilele. Totdeauna trebuie sa stii ordinea lor ceea ce intr-un document mai mare poate fi greu de urmarit.

MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Interpretarea unei variabile aflate intr-un cod HTML

Mesajde MarPlo » Sâm Iul 05, 2014 8:42 am

Cursuri gratuite: | | | |


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori