如何将文本文件中的变量(不仅仅是值,而是定义)导入PHP脚本?

时间:2019-06-19 10:42:07

标签: php bash export

我有大量的PHP脚本,它们需要一组标准的变量,例如位置/文件的paths。我不想在每个脚本中对它们进行硬编码,也不想定义这些变量并从单个文本文件导入它们的值。我想要类似bash export的东西,在其中定义所有变量,然后将export放入我想要的bash脚本中,并立即开始使用这些变量。

一种可能的解决方案(我想避免)是将值逐行存储在txt文件中,然后将这些值读入我的php脚本中本地定义的一些变量中。例如:

我可以将以下内容存储在名为paths.txt的txt文件中,该文件的内容为:

/path/to/some/location/
someaddress@somedomain.com
1729
Hello Mars!
etc...

然后在myfile.php内:

$all_lines = file("paths.txt");//file in to an array
$location = echo $lines[0];
$rnumber = echo $lines[2];
//...etc 

但是我不想要这个!

我希望我的txt文件看起来像什么:

$location = "/path/to/some/location/";
$address = "someaddress@somedomain.com";
$rnumber = "1729";
$hello = "Hello Mars!";

然后在myfile.php内:

我只想直接使用在paths.txt内定义和声明的那些变量,以某种方式我们在bash中进行操作。如source然后是export

这可能吗?

1 个答案:

答案 0 :(得分:0)

有可能,但这可能不是最佳实践。现在,许多人正在将JSON或YAML用于这些类型的事情,它变得无处不在。但是,如果您要使用目标格式,只需将其设置为PHP文件,然后根据需要添加文件即可。

settings.php

<?php
   $location = "/path/to/some/location/";
   $address = "someaddress@somedomain.com";
   $rnumber = "1729";
   $hello = "Hello Mars!";
?>

然后在需要时在另一个PHP脚本中需要它们:

<?php
    define('__ROOT__', dirname(dirname(__FILE__))); 
    require_once(__ROOT__.'/settings.php');

    //more code
?> 

作为示例,您可以像这样使用JSON:

settings.txt

{"location":"\/path\/to\/some\/location\/","address":"someaddress@somedomain.com","rnumber":"1729","hello":"Hello Mars!"}

然后读入文本文件:

<?php
    define('__ROOT__', dirname(dirname(__FILE__)));
    $json = file_get_contents(__ROOT__.'/settings.txt');

    // make variables from json string
    $settings = json_decode($json, true); // 'true' makes an array, not object
    print_r($settings);
    echo $settings['location'];
?> 

哪个返回:

(
    [location] => /path/to/some/location/
    [address] => someaddress@somedomain.com
    [rnumber] => 1729
    [hello] => Hello Mars!
)
/path/to/some/location/