PHP / Laravel — найти и прочитать «пару ключ-значение» из файла

Я хочу хранить некоторую текстовую информацию, но я не хочу использовать базу данных для этого. Например, есть файл:

key1: some text information 1
key2: some text information 2
key3: another text information

Мне было интересно, какой самый короткий способ найти одно конкретное значение из этого файла, используя PHP или Laravel?

Я мог бы использовать foreach(file('yourfile.txt') as $line) {} Цикл для хранения строк текста в массиве, а затем найти строку с определенным ключом, но, возможно, есть более короткий или более хороший способ сделать это.

1

Решение

Если все строки в одном формате ([key]: [value]) вы можете просто использовать explode(": ", $line) получить значения, а затем переписать их в массив PHP;

// getData('yourfile.txt') returns an associative array
function getData($file) {
$data = file($file);
$returnArray = array()
foreach($data as $line) {
$explode = explode(": ", $line);
$returnArray[$explode[0]] = $explode[1];
}

return $returnArray;
}
3

Другие решения

Я думаю, что вы должны использовать массив вместо текстового файла

Создайте новый файл в каталоге app / config. Давайте назовем это constants.php

Там вы должны вернуть массив значений конфигурации.

return [
'myData' => [
'key1' => 'www.domain.es',
'key2' => 'www.domain.us'
// etc
]
];

И вы можете получить к ним доступ следующим образом

Config::get('constants.myData');
// or if you want a specific one
Config::get('constants.myData.key1');

И вы можете установить их, а также

Config::set('myData.key1', 'test 123');
4

По вопросам рекламы [email protected]