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

时间:2016-01-06 21:03:10

标签: php

我有一些(简化的)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>
*/
?>

我尝试了各种串联和回声组合,但要么编译不正确,要么打印出我的数据库连接细节。我需要保留这些注释,因为我正在编辑的代码似乎需要它。

2 个答案:

答案 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");

?>

当然,您可能必须调整目标和包含路径以及文件系统权限。但是,确保从文档根目录中无法读取/猜测它。 我很想知道这是否真的有效。