Я хочу избежать записи в БД и использовать константы / массив для lang-файлов и т. Д.
то есть:
$lang = array ( 'hello' => 'hello world!' );
и иметь возможность редактировать его из бэк-офиса. (тогда вместо того, чтобы извлекать его из бедных db, я бы просто использовал $ lang ['hello'] ..).
что вы предлагаете для лучшего и эффективного способа его вытащить?
Определенно JSON
Чтобы сохранить его:
file_put_contents("my_array.json", json_encode($array));
Чтобы вернуть его:
$array = json_decode(file_get_contents("my_array.json"));
Так просто !
самый эффективный способ, который я нашел, выглядит следующим образом:
создайте свой массив в php каким-то образом и экспортируйте его в файл с помощью var_export()
file_put_contents( '/some/file/data.php', '<?php return '.var_export( $data_array, true ).";\n" );
то позже, где бы вы ни нуждались, эти данные тянут это так
$data = include '/some/file/data.php';
Ну, если вы настаиваете на том, чтобы поместить данные в файлы, вы можете рассмотреть функции php serialize()
и unserialize()
а затем поместить данные в файлы с помощью file_put_contents
.
Пример:
<?php $somearray = array( 'fruit' => array('pear', 'apple', 'sony') ); file_put_contents('somearray.dat', serialize( $somearray ) ); $loaded = unserialize( file_get_contents('somearray.dat') ); print_r($loaded); ?>
Вы можете попробовать json_encode()
и json_decode()
.
$save = json_encode($array);
написать содержимое $ save в файл
Для загрузки lang используйте:
$lang = file_get_contents('langfile'); $lang = json_decode($lang, true);