php代码变成变量

时间:2016-06-25 02:12:50

标签: php mysql variables

我想将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代码?

4 个答案:

答案 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;

那就是它!

干杯!