我想将PHP代码插入变量。
我想替换"有些文字"使用PHP代码。
我在互联网上找到了一些例子,但是当我尝试运行我的脚本时它没有工作。
这是我目前的脚本:
$purchaseID = "Some text";
我想改变一些文字"使用以下代码:
<?php
echo date('y/m/d');
echo "O";
$link = mysql_connect("localhost", "root", "");
mysql_select_db("db", $link);
$result = mysql_query("SELECT * FROM table", $link);
$num_rows = mysql_num_rows($result);echo "$num_rows"+1;
?>
我试过了:
$purchaseID = <<<END
echo date('y/m/d');
echo "O";
$link = mysql_connect("localhost", "root", "");
mysql_select_db("db", $link);
$result = mysql_query("SELECT * FROM table", $link);
$num_rows = mysql_num_rows($result);
echo "$num_rows"+1;
END;
当我运行时,我收到错误。
如何解决此问题并替换&#34;某些文字&#34;使用PHP代码?
答案 0 :(得分:0)
您正在使用 heredoc 语法来插入变量。您可能需要 herenow 语法而不进行插值:
$purchaseID = <<<'END'
echo $variable;
END;
// $purchaseID == "echo $variable;"
将分隔符括在单个qoutes中。在这种情况下,插值不完成。要执行代码,您必须使用eval($purchaseID);
。请注意,eval
在依赖外部数据时具有潜在危险。
答案 1 :(得分:0)
如果我理解你的需要,你只需要连接字符串的不同部分:
$purchaseID = date('y/m/d');
$purchaseID .= "O";
$link = mysql_connect("localhost", "root", "");
mysql_select_db("db", $link);
$result = mysql_query("SELECT * FROM table", $link);
$num_rows = mysql_num_rows($result);
$purchaseID .= $num_rows + 1;
你会得到(考虑$num_rows
为4)
2016/06 / 24O5
你真的需要heredoc语法吗?
答案 2 :(得分:0)
尝试,但我不建议你eval
使用eval()refer and learn here
会产生一些副作用<?php
$time = '<?php echo time(); ?>';
eval('?>'.$time.'<?php;');
?>
答案 3 :(得分:0)
您必须转义变量,如下所示:
$purchaseID = <<<END
echo date('y/m/d');
echo "O";
\$link = mysql_connect("localhost", "root", "");
mysql_select_db("db", \$link);
\$result = mysql_query("SELECT * FROM table", \$link);
\$num_rows = mysql_num_rows(\$result);
echo "\$num_rows"+1;
END;
那就是它!
干杯!