Как импортировать переменные (не только значения, но и определения) из текстового файла в скрипт PHP? - PullRequest
1 голос
/ 19 июня 2019

У меня есть большое количество PHP-скриптов, которым требуется стандартный набор переменных, например paths для местоположений / файлов.Я не хочу жестко их кодировать в каждом скрипте, а также не хочу определять эти переменные и импортировать их значения из одного текстового файла.Я хочу что-то вроде bash export, где я определяю все свои переменные и просто export их в любой сценарий bash, который я хочу, и сразу начинаю использовать эти переменные.

Одним из возможных решений (которого я хочу избежать) является построчное сохранение значений в файле txt, а затем чтение этих значений в некоторые переменные, локально определенные в моем php-скрипте.Например:

Я мог бы хранить подобные вещи в текстовом файле с именем paths.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 голосов
/ 19 июня 2019

Это возможно, но это не лучшая практика. Многие используют 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/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...