在注释中从PHP变量中回显字符串


Echo out string from PHP Variable, within comments

我有一些(简化的)数据库连接的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");
?>

当然,您可能需要调整目标,包括路径和文件系统权限。不过,请确保它不能从文档根目录中读取/猜测。我很想听听这是否真的有效。