我的php代码中有一个存储在变量中的字符串,如下所示:
<?php
$string = "
<?php $var = 'John'; ?>
<p>My name is <?php echo $var; ?></p>
";
?>
然后,当在其他地方使用$ string变量时,我希望里面的代码能够正常运行。 PHP代码应该正常运行,HTML代码也应该正常运行。因此,当回显$ string时,我会将My name is John
包裹在<p>
标记中。
答案 0 :(得分:1)
所以,如果我是对的,你有$ var ='John';存放在不同的地方。
像这样:
<?php $var = 'John'; ?>
然后在另一个地方,你想创建一个名为$ String的变量? 我认为你的意思是这个,所以我建议使用以下内容:
<?php
$String = "<p>My name is ".$var." </p>";
echo $String;
?>
答案 1 :(得分:1)
你不知道该怎么做。如果您仍然坚持,则应检查eval又名evil
功能。首先要知道的是,你不能在字符串中传递开放的<?php
标签,第二,你需要为php脚本使用单引号你想要评估(单引号中的变量不被评估),所以你的脚本应该看起来像:
<?php
$string = '
<?php $var = "John"; ?>
<p>My name is <?php echo $var; ?></p>
';
// Replace first opening <?php in string
$string = preg_replace('/<\?php/', '', $string, 1);
eval($string);
但是,这被认为是非常高的安全风险。
答案 2 :(得分:0)
你应该在$ string变量之外定义$ var,比如这个
<?php
$var="John";
$string = "<p>My name is $var</p>";
?>
或者你可以使用。连接字符串
<?php
$var="John";
$string = "<p>My name is ".$var."</p>";
?>
两个代码都会返回相同的字符串,所以现在执行
<?php
echo $string;
?>
您将获得<p>My name is John</p>