为了账号安全,请及时绑定邮箱和手机立即绑定

来自 db 的值包含 php 变量名 ('hello $name') ,如何正确显示?

来自 db 的值包含 php 变量名 ('hello $name') ,如何正确显示?

PHP
慕容森 2023-04-15 11:01:17
从 db 我得到一个包含 php 变量名称的字符串,如 'hello $name' ,我不知道如何正确显示它:例如:假设我有函数显示名称:function echoName($name){              //call to db to get string (hello $name)          $helloname = $row['helName'];          echo $helloname; //lets say name = jinko it should print hello jinko         //but it prints hello $name         // i have tried "$helloname"; it doesn't work}在我的例子中,数据库包含:Il tuo codice di prenotazione è $codicePrenotazione<br>Ricordiamo la data : $newDate我的功能代码:function sendEmail($cognome,$nome,$email,$codicePrenotazione,$date){ require './dbconnection.php';  $mail = new PHPMailer(true);  $query = 'SELECT Azienda_Nome,Azienda_email_notifiche_smtp,Azienda_email_notifiche_utente ,Azienda_email_notifiche_pwd,Azienda_email_notifiche_porta,Azienda_email_notifiche_sicurezza ,Azienda_mex_utente FROM `aziende`';  $stmt =$conn->query($query);  $stmt->execute();   $row = $stmt->fetch();   $siteOwnersEmail = $row['Azienda_email_notifiche_utente'];  $smtp =$row['Azienda_email_notifiche_smtp'];  $password =$row['Azienda_email_notifiche_pwd'];  $porta=strtolower( $row['Azienda_email_notifiche_porta']);  $sicurezza=strtolower( $row['Azienda_email_notifiche_sicurezza']);  $contact_message = $row['Azienda_mex_utente'];//this line contains the string   $nomeAzienda = $row['Azienda_Nome'];  $conn = null;  $newDate = date("d-m-Y H:i", strtotime($date));    $name = $nome.' '.$cognome;   $email = $email;   $subject = 'Codice Prenotazione';//etc etc }
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

你最好使用类似的东西sprintf

例如,如果你的数据库中有这个:

Hello, your name is %s

你可以像这样格式化它:

echo sprintf($row["heName"], "Test");

这将输出:

Hello, your name is Test

如果你真的想使用 PHP 风格的变量名,一种方法是用preg_replace_callback它们各自的值替换变量:

<?php


function format_string($string, $variables) {

    return preg_replace_callback("~\\$([A-Za-z0-9-_]+)~",

    function($match) use (&$variables) {

        $varname = $match[1];


        return $variables[$varname];

    }, $string);

}


echo format_string("Hello \$user", /* variable table */ [

    "user" => "Test"

]);


查看完整回答
反对 回复 2023-04-15
?
12345678_0001

TA贡献1802条经验 获得超5个赞

您可以使用评估...

$name = "jinko";

$helloname = "hello $name";

eval("\$helloname = \"$helloname\";");


echo $helloname; // prints: hello jinko

警告:这可能很危险,因为 eval 会“执行”任何 PHP 代码。因此,仅当来自数据库的数据安全时才使用它。


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信