2014-09-04 2 views
0

Я чтение файла конфигурации, я хочу, чтобы прочитать имя, которое содержит ; в строке какReading точка с запятой значение разделителей строки из ини файла

config=node1;node2;node3 

я хочу читать в целом, а не node1, как ответил на PHP в чтении

мой код:

$ini_array = parse_ini_file("test_config.conf", true); 
$nodelist = $ini_array["config"]; 
+0

изменить INI записи файла 'конфиг =«node1; nODE2; node3»' –

+0

изменить точку с запятой с запятой, точка с запятой используется в качестве комментария –

+0

тот же файла, используя при серверов время от времени читать co nfigurations, и я пытаюсь прочитать его в php, который включает ';', и это заставляет меня плакать: p – Sarz

ответ

1

Поскольку ; указывает на комментарий в качестве ини файла, parse_ini_file() правильно выбрасывает все позади (без кавычек) ;.

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

$config = array(); 
foreach(file('/path/to/conf.ini') as $line) { 
    if(preg_match('/^([^;]*?)=(.*)/', $line, $m)) { 
     $config[$m[1]] = $m[2]; 
    } 
} 

var_dump($config); 

Если вам нужно только значение config, вы можете использовать это:

preg_match('/^\s*config\s*=(.*)/', file_get_contents('config.ini'), $m); 
echo $config = $m[1]; 
+0

Спасибо за ответ Я новичок в php, он дает мне все подробности в php, но я хочу прочитать эту строку только значение config – Sarz

+0

@Sarz Добавлено, что ... – hek2mgl

+0

это говорит Неопределенное смещение: 1 – Sarz

Смежные вопросы