разбирать файл на массив в php - PullRequest
0 голосов
/ 30 октября 2010

, пожалуйста, помогите мне, моя проблема:

в одном .txt файле у меня есть

rpgoCPpref = {
 ["enabled"] = true,
 ["button"] = true,
 ["debug"] = false,
 ["questsfull"] = false,
 ["tooltipshtml"] = true,
 ["tooltip"] = true,
 ["verbose"] = false,
 ["scan"] = {
  ["inventory"] = true,
  ["talents"] = true,
  ["glyphs"] = true,
  ["honor"] = true,
  ["reputation"] = true,
  ["spells"] = true,
  ["pet"] = true,
  ["equipment"] = true,
  ["currency"] = true,
  ["companions"] = true,
  ["professions"] = true,
  ["mail"] = true,
  ["skills"] = true,
  ["quests"] = true,
  ["bank"] = true,
 },
 ["ver"] = 30000,
 ["fixicon"] = true,
 ["talentsfull"] = true,
 ["fixtooltip"] = true,
 ["fixcolor"] = true,
 ["lite"] = true,
 ["reagentfull"] = true,
 ["fixquantity"] = true,
}

кто является формой преобразования или разбора в массиве в php? за помощь thx

Ответы [ 3 ]

0 голосов
/ 30 октября 2010

Как он так хранился? Похоже, вы отправили вывод вызова print_r в файл. Если возможно, вы должны использовать команду serialize для сохранения вашего массива в файле: http://php.net/manual/en/function.serialize.php, а затем вы можете впоследствии отменить его содержимое: http://www.php.net/manual/en/function.unserialize.php

Подробнее: http://www.php.net/manual/en/language.oop5.serialization.php

0 голосов
/ 30 октября 2010

Предполагая, что вы никогда не позволите другим людям вставлять новый код в этот файл, вы можете сделать следующее, чтобы превратить его в обычный массив PHP и передать через eval :

$str = file_get_contents($your_file);

$str = preg_replace('/(["\w]+) = {/', '$\1 = array(', $str);
$str = preg_replace('/\[(["\w]+)\] = {/', '\1 => array(', $str);
$str = preg_replace('/\[(["\w]+)\] = (.+),/', '\1 => \2,', $str);
$str = preg_replace('/}/', ')', $str);

eval($str);

var_dump($rpgoCPpref);

Это очень хорошая идея, чтобы вы удалили это и записали массив обратно в сериализованную форму.

0 голосов
/ 30 октября 2010

вам придется читать каждую строку, интерпретировать и создавать массив вручную!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...