eval PHP中的双引号问题

时间:2018-10-04 16:11:42

标签: php escaping eval

这是我的代码,出现这样的错误。

  

解析错误:语法错误,意外的“”;“ (T_ENCAPSED_AND_WHITESPACE)在C:\ wamp64 \ www \ PHPQC \ php \ base \ meditabmssql \ med_pa​​ge.php(1369):eval()的第1行代码中。

代码:

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string wi"th my $name in it.';
eval("\$str = \"$str\";");
echo $str;
?>

这是参考文献(http://php.net/manual/en/function.eval.php

2 个答案:

答案 0 :(得分:0)

您应该转义一些字符:

<?php
$string = 'cup'; 
$name = 'coffee'; 
$str = 'This is a $string wi"th my $name in it.'; 
eval("\$str = \"\$str\";"); 
echo $str;
?>

答案 1 :(得分:0)

您需要转义$str中的引号。您可以为此使用addslashes()

<?php
$string = 'cup'; 
$name = 'coffee'; 
$str = 'This is a $string wi"th my $name in it.'; 
$strslash = addslashes($str);
eval("\$str = \"$strslash\";"); 
echo $str;
?>