PHP打开一个文件给它parameters/variables

PHP Open a file and give it parameters/variables

使用此代码,我使用数据库中的信息创建新文件:

function getLocations() {
    $query = mysql_query("SELECT DISTINCT `plaats` FROM `plaatsen` ORDER BY `plaats` ");

    while ($row = mysql_fetch_assoc($query)){
        $city = $row['plaats'];

        $handle = fopen( "cities/$city.php",'w');

        echo "<a href='cities/".$row['plaats'].".php' class='col-md-4'>"."<div class='steden'>".$row['plaats']."</div>"."</a>";

        fwrite($handle, '<?php include("../stad.php") ?>');
        fwrite($handle, $city);
    }
} 

输出是多个链接和不同城市的文件,例如:阿姆斯特丹、鹿特丹、海牙。现在这些页面上的内容必须根据所在的城市而有所不同。所以基本上页面应该知道它是哪个城市,并从数据库中下载这个城市的内容。

我试图通过向页面写入一个 var 来做到这一点,它确实将城市名称写入页面,但我不能(据我所知)对这些信息做任何事情。

有人知道怎么做吗?谢谢!

$handle = fopen( "cities/$city.php",'w'); - 呃!这对安全来说真的很糟糕。允许您的网络服务器 uid 对随后将由 PHP 处理的文件进行写访问本身并不是一个漏洞,而是为攻击升级提供了一个媒介。

您可能有充分的理由想要在数据库之外缓存内容 - 但请使用缓存反向代理或 ESI 或(作为最后的手段)在您的 PHP 代码 不要使用 PHP 代码作为缓存 .

关于识别文件名的问题PHP代码是运行中-PHP可以从__FILE__常量中得到这个。例如

<?php

print "I am in " . strtok(basename(__FILE__), '.');

要确定包含层次结构中涉及的文件名,请查看 debug_backtrace()