我有一些(简化的)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>
*/
?>
我尝试了各种串联和回声组合,但要么编译不正确,要么打印出我的数据库连接细节。我需要保留这些注释,因为我正在编辑的代码似乎需要它。
答案 0 :(得分:1)
<?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>
答案 1 :(得分:0)
您可以让PHP创建一个由注释掉的(out-comment)?代码组成的文件,然后包含它。
<?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");
?>
当然,您可能必须调整目标和包含路径以及文件系统权限。但是,确保从文档根目录中无法读取/猜测它。 我很想知道这是否真的有效。