Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP从python文件中读取变量?_Php_Python - Fatal编程技术网

如何使用PHP从python文件中读取变量?

如何使用PHP从python文件中读取变量?,php,python,Php,Python,试图找出最好的方法来做这件事,我得到了非常奇怪的结果。长话短说,我们将应用程序配置参数放在后端python中,前端PHP使用硬编码参数,我试图将其与单个python文件联系起来,这样我就不必在多个地方更改重要的配置参数,例如部署到不同的服务器 python文件defaults.py: 试图从测试代码中收集配置变量的PHP代码主要包括: 正如您所看到的,我正在遍历python文件,试图用文件中的变量重新分配我的硬编码变量。。。这里有很多调试代码 因此,在您运行它的时候,它会从文件中的每一行向您发出

试图找出最好的方法来做这件事,我得到了非常奇怪的结果。长话短说,我们将应用程序配置参数放在后端python中,前端PHP使用硬编码参数,我试图将其与单个python文件联系起来,这样我就不必在多个地方更改重要的配置参数,例如部署到不同的服务器

python文件defaults.py:

试图从测试代码中收集配置变量的PHP代码主要包括:

正如您所看到的,我正在遍历python文件,试图用文件中的变量重新分配我的硬编码变量。。。这里有很多调试代码

因此,在您运行它的时候,它会从文件中的每一行向您发出警报。。。非常奇怪的结果是,它没有向全行发出警报,而是向somehostname.com、3526、someuser等发出警报。。。它也不会提醒导入时间线或注释掉的行。这对我来说是非常奇怪的,我希望它能以字符串的形式读取行,但在我看来,fgets以一种非常奇怪的方式解释代码

我想知道这里到底发生了什么,是否有更好的方法来解决这个问题。。。不修改python文件,因为后端在任何地方都使用它

谢谢。

这看起来很像java.properties文件。尽管有这样一个事实,但仍有一些方法被调用:

today = time.time()
但是您可以将这些属性作为字符串读取,您可以在这个问题中找到有关读取属性文件的帮助:


一旦加载了所有数据,就必须使用代码对行进行求值——希望您能通过键识别它们。我知道这只是一个一般的想法,但是我希望你可以自己进一步研究。

我建议你考虑把这个配置移到一个更标准的文件格式,比如一个INI文件,你可以从两个语言中轻松地读和解析。PHP应该能够像文本文件一样读取文件,但它只是读取等号后面的内容,我觉得很奇怪。。。我希望它像文本一样处理,但它像被曲解的代码一样处理。你是对的。。。然而,这是改变方式,以广大的后端和外部软件系统来处理。我只想让它读文本,而不是把它解释成代码。。。fgets不应该这样做。我在警报中缺少引号,这就是为什么它只给出等号后面的内容。。。还是奇怪的操作。
<?php
    function db_connect() {
        $config_file = fopen("../modules/defaults.py", "r");
        if ($config_file) {
            while (($line = fgets($config_file)) !== false) {
                echo "<script>alert(". (string)$line. ");</script>";
                // process the line read.
                if(substr($line, 0, 4) === "host"){
                    //$servername = trim(explode("=",$line)[1]);
                    $servername = "somehostname.com";
                }
            }
            fclose($handle);
        }
        echo "<script>alert(". $servername. ");</script>";
        //$servername = "somehostname.com";
        $username = "someuser";
        $password = "somepass";
        $dbname = "someDB";
        $port = 3526;
        //Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);

        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
        return $conn;
    }
?>
today = time.time()