我有一些(简化的)数据库连接的PHP配置。
<?php
/*
<CONFIG application="Example" version="1.1">
<Database>
<Driver>MYSQL</Driver>
<Host>http://example.com</Host>
<Port>3306</Port>
<Database>qwerty</Database>
<Username>usr</Username>
<Password>hackme</Password>
</Database>
</CONFIG>
*/
?>
如何在注释中用数组中的变量$serv["host"]
填充主机
这是我的尝试。。。
<?php $serv["host"] = "http://example.com"; ?>
<?php
/*
<CONFIG application="Example" version="1.1">
<Database>
<Driver>MYSQL</Driver>
<Host>$serv["host"]</Host>
<Port>3306</Port>
<Database>qwerty</Database>
<Username>usr</Username>
<Password>hackme</Password>
</Database>
</CONFIG>
*/
?>
我尝试过各种串联和echo组合,但它要么无法正确编译,要么打印出我的数据库连接详细信息。我需要保留这些注释,因为我正在编辑的代码似乎需要它。
<?php
$serv = array(
'host' => 'http://example.com';
);
?>
<CONFIG application="Example" version="1.1">
<Database>
<Driver>MYSQL</Driver>
<Host><?php echo $serv['host']; ?></Host>
<Port>3306</Port>
<Database>qwerty</Database>
<Username>usr</Username>
<Password>hackme</Password>
</Database>
</CONFIG>
您可以让PHP创建一个由注释掉的代码组成的文件,然后将其包含在内。
<?php $serv["host"] = "http://example.com"; ?>
<?php
$dbcon = "
/*
<CONFIG application="Example" version="1.1">
<Database>
<Driver>MYSQL</Driver>
<Host>" . $serv["host"] . "</Host>
<Port>3306</Port>
<Database>qwerty</Database>
<Username>usr</Username>
<Password>hackme</Password>
</Database>
</CONFIG>
*/";
$f = fopen("comment.php", 'w');
fwrite($f, $dbcon);
fclose($f);
include("comment.php");
?>
当然,您可能需要调整目标,包括路径和文件系统权限。不过,请确保它不能从文档根目录中读取/猜测。我很想听听这是否真的有效。