0

インストールファイルに次の文字列を使用して構成ファイルを作成させるのに疲れていますが、次のエラーが発生し続けます:解析エラー:構文エラー、予期しないT_CONSTANT_ENCAPSED_STRING in ...

$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

?>';

私は何が間違っているのですか?

前もって感謝します、

ロバート

4

3 に答える 3

2

文字列内でをエスケープする必要があり'ます。

于 2012-05-05T23:19:26.267 に答える
0

最後の4つの文字列の割り当てが壊れているようです。問題を回避するために、代わりにヒアドキュメント/nowdocを使用することをお勧めします。

編集:それ以外では、ユーザーが制御する別のデータベースに動的に接続するために、phpを使用してphpファイルを作成しているようです。これは悪臭がします...あなたがやろうとしていることをもう少し説明していただけますか?それを達成するためのより良い方法がなければなりません。

于 2012-05-05T23:22:30.680 に答える
0

(現在)発生している解析エラーは、配列インデックスの引用符が原因です。ただし、Musaが指摘したように、die()も問題を引き起こします。より良い解決策:ヒアドキュメントを使用します。

<?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;
于 2012-05-06T03:14:08.697 に答える