在其他变量中使用变量

时间:2013-05-24 14:05:59

标签: php variables include

在我的邮件中,我从变量($text)获取文本并通过mail()发送。在文本中我想使用另一个变量。我从我的数据库中得到它。 ($text1)。

邮件中的文字(变量$text内)看起来就是这样。

“嗨$text1,你好吗?”

现在我想用数据库中的原始文本替换$text1

我必须做什么?

例如:

$text1 = $row['text1'] // from Database1

$text2 = $row['text2'] // from Database1

$text = $row['text'] // from Database2

来自$text的内容为“嗨$text1,你好吗?你的狗$text2 ....”

mail('user@example.com', 'subject', $text);

3 个答案:

答案 0 :(得分:1)

$allVars = array('text1'=>'some text', 'text2'=>'some other text');

UPD:在你的情况下,$ allVars是来自数据库的$ row数组。

foreach($allVars as $var=>$value){

   $text = preg_replace("@\\$" . $var . "([^a-zA-Z_0-9\x7f-\xff]|$)@", $value . "\\1", $text);

}

您也可以使用http://php.net/manual/en/function.get-defined-vars.php

$allVars = get_defined_vars();

答案 1 :(得分:0)

sprintf正是出于此目的

$text = "Hello %s, how it's %s";
$name = "Joe";
$foo  = "going?";
$text = sprintf($text, $name, $foo);

答案 2 :(得分:-1)

这只是一个字符串替换。因为PHP会解析字符串中的变量,所以你可以强迫它不要用一点技巧来做:

$new_text = str_replace("$"."text1", $text1, $old_text);