Php I';我在一个字符串连接行解析错误中得到了这个错误:语法错误,意外的T\u常量\u封装了\u字符串

Php I';我在一个字符串连接行解析错误中得到了这个错误:语法错误,意外的T\u常量\u封装了\u字符串,php,string,syntax-error,Php,String,Syntax Error,我想让一个安装文件使用下面的字符串创建一个配置文件,但我一直遇到这样的错误:解析错误:语法错误,意外的T_常量\u封装了\u字符串 $tempcon = ' <?php // Give Usage string for Config File if(isset($_GET["gimi"])) { die('"' . str_replace('\\','\\\\',__FILE__) . '"'); // <--- The error is on this line! } $dbh

我想让一个安装文件使用下面的字符串创建一个配置文件,但我一直遇到这样的错误:解析错误:语法错误,意外的T_常量\u封装了\u字符串

$tempcon = '
<?php
// Give Usage string for Config File
if(isset($_GET["gimi"])) {
  die('"' . str_replace('\\','\\\\',__FILE__) . '"'); // <--- The error is on this line!
}
$dbhost = "'. $_POST["dbhost"] .'";             // Database Host Address
$dbname = "'. $_POST["dbname"] .'";             // Database Name
$dbuser = "'. $_POST["dbuser"] .'";             // Database Username
$dbpass = "'. $_POST["dbpass"] .'";             // Database Password

?>';
$tempcon='1!'

您需要转义字符串中的

您的最后四个字符串分配似乎已中断。我建议改用herdoc/nowdoc来避免问题

编辑:除此之外,您似乎正在使用php编写一个php文件,以动态连接到另一个由用户控制的数据库。这有一股难闻的气味。。。你能再描述一下你想做些什么吗?必须有更好的方法来完成它。

您(当前)遇到的解析错误是由于数组索引上的引号引起的-尽管正如穆萨所指出的,您的die()也会给您带来麻烦。更好的解决方法:使用


LOL,我甚至没有注意到所有的php块都放在了一个变量中,我正忙于计算错误行上的斜杠和单引号:我正在编写一个使用用户动态输入的安装脚本,在添加“if(isset)”之前,它工作得很好protion你能说得更具体些吗?@RobertH在
die
中有
s,它们需要转义
<?php
$tempcon = <<<PHPCODE
<?php
// Give Usage string for Config File
if(isset({$_GET["gimi"]})) {
    die('"' . str_replace('\\','\\\\',__FILE__) . '"'); // <--- The error is on this line!
}
$dbhost = "'. {$_POST["dbhost"]} .'";             // Database Host Address
$dbname = "'. {$_POST["dbname"]} .'";             // Database Name
$dbuser = "'. {$_POST["dbuser"]} .'";             // Database Username
$dbpass = "'. {$_POST["dbpass"]} .'";             // Database Password

?>
PHPCODE;