Változó értékének behelyettesítése stringbe
Kedves PHP Guruk,
azt tudom, hogy a duplaidézőjelbe írt sztringben megbújó változók értéke behelyettesítődik,
de mi van akkor, ha én a sztringemet egy függvényhívás eredményeképpen kapom?
Ez esetben a behelyettesítés nem megy végbe!hogyan lehet megoldani a (sztring)változóban kapott változók behelyettesítését?
Köszönettel: teamtom
■ azt tudom, hogy a duplaidézőjelbe írt sztringben megbújó változók értéke behelyettesítődik,
de mi van akkor, ha én a sztringemet egy függvényhívás eredményeképpen kapom?
Ez esetben a behelyettesítés nem megy végbe!
require_once('lib/mysql.php');
$mysql = new Mysql($server,$username,$password,$dbname);
$fullname = "lacafaca";
$password = "*ize*";
echo "Kedves $fullname! A regisztrációd sikerült! A jelszavad: $password."; // megtortenik a behelyettesites
echo "<br/>";
$txt = $mysql->doQueryToRow("select text from ".MYSQL_TABLE_TEXT." where title='regokmail'");
echo "$txt[0]"; // NEM tortenik meg a behelyettesites
Köszönettel: teamtom
{ }
Az echo-t lehet (és azt mondják, hogy jobb is) úgy használni, hogy nem összefűzöd a string-eket, hanem egy vesszővel választod el őket.
Tehát:
nem megy így sem
ha változón (tömbön) keresztül (hogy máshogy?) próbáltam kiíratni a sztringet, bennemaradtak a változók.
olyan mintha a behelyettesítés dupla idézőjelek között csak egy szint mélységben hajtódna végre, iteráció nélkül
igazából az lenne számomra a lényeg, hogy a táblából kinyert szövegben a beleírt változók behelyettesítődjenek a változók értékével valahogyan, nem a kiíratás (echo v. print)
a kapcsos zárójelet megpróbáltam, ugyanúgy benne maradnak a változók a sztringemben :(
Re
Ha az a helyzet áll fenn, akkor sztem alapvető tervezési hiba van nálad (én ilyet biztosan nem csinálnék).
Megoldás lehet az eval() függvény használata.
Pontosan mit is akarsz a dologgal elérni? Mert sztem van jobb megoldás is, legalábbis ha valóban az van amire én gondolok ...
sémaszöveg van a táblámban
$string = "blabla bla $fullname blabla blabal $password"
ettől függetlenül lehet tervezési hiba is :)
a táblából a $string sémaszöveget nyerem ki, amiben a 2 darab változót ($fullname: teljes név, $password: generált jelszó ) aktualizálnám
vagyis azt hiszem, ez templétezés, de emiatt nem akartam Smarty-t használni (nem is igazán értek hozzá)
felhasználói regisztráció a környezet, egyébként
a kimenet egy darab sztring, egy személyreszabott válaszlevél, amit mailben visszaküldök
Egy lehetséges megoldás
Köszönöm
nem tudtam, hogy az str_replace tömbök között is működik
RTFM, hát persze :)
Sztingösszefűzás:
Összefűzés
(töröljétek)
(töröljétek)