Вам нужно экранировать кавычки внутри $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;
?>