Разбор массива из php файла - PullRequest
0 голосов
/ 06 марта 2012

Файл .php содержит код, подобный:

<?php

return array(

  // commments...
  'some_item'       => 'abc',

  // commments...
  'some_other_item' => array(1, 2, 3),

  ...

);

Каков наилучший способ как-то "проанализировать" этот файл из моего PHP-приложения и иметь возможность обновлять данные в нем, не нарушая форматирование, код и т. Д.?

Ответы [ 5 ]

5 голосов
/ 07 марта 2012

$content = require($file); получит содержимое файла (остерегайтесь относительных путей и семантики require против include).

file_put_contents($file, '<?php return ' . var_export($content, true) . ';'); запишет содержимое обратно в файл, но форматирование изменится. Если вам действительно нужно сохранить форматирование, вы можете посмотреть PHP Beautifier . Это не идеальное решение.

3 голосов
/ 07 марта 2012

просто include() файл:

$my_array = include 'myarray.php';

См. Пример № 4 в http://php.net/manual/en/function.include.php и http://php.net/manual/en/function.return.php

2 голосов
/ 07 марта 2012

Предполагая, что в вашем массиве есть только два элемента

<?php
    $myArray=include 'data.php';
    $myArray[count($myArray)]='Item-3';
    echo $myArray[2]; // Item-3
?>
2 голосов
/ 07 марта 2012

Лучший способ это include это;да, include возвращает значение!

$data = include 'someData.php';
1 голос
/ 07 марта 2012

Вы пытаетесь загрузить имена файлов, которые содержатся в массиве? Если так:

$array_of_files = array('header.php','database.php','../inc/other_stuff.php');

foreach($array_of_files as $file)
{
   include $file;
}
...