2015-07-22 21 views
5

Mam pliki .ini który zawiera wsporniki () Jako php.net polecam parse.ini złożyć z parse_ini_file() funkcjono, więc powiedzmy, że mój kod wygląda następująco:przeanalizować pliku ini ze wspornikami

$ini = parse_ini_file('files/models.ini'); 

następnie błąd wygląda tak:

Warning: syntax error, unexpected '(' in files/models.ini on line 4 in \index.php on line 48 

to jest tekst z linii 4

00name1=100 08/82-11/90 (443/445) Typový sešit [V] [27] 

Problem polega na tym, że otrzymuję ten plik z zewnątrz i nie mogę go zmienić,

Z wielu stron zauważam, że niektóre słowa mają specjalne znaczenie w pliku ini, np. "Null" "true" "no" "yes", ale to nie jest to taka sytuacja.

Więc ktoś może mi doradzić, co robię źle, a jeśli to niemożliwe, czy istnieje jakieś obejście?

+0

Najprostszym rozwiązaniem byłoby, aby umieścić w cudzysłowie swoimi wartościami w pliku ini – Rizier123

+0

Yea Rozumiem, ale niestety nie mogę zrobić :( – Andurit

+0

Does twój plik ini ma jakieś komentarze lub [sekcje]? – Rizier123

Odpowiedz

5

Można użyć opcji INI_SCANNER_RAW:

$ini = parse_ini_file('files/models.ini', false, INI_SCANNER_RAW); 

Z documentation:

Jeśli INI_SCANNER_RAW jest dostarczany, a następnie wartości opcji nie będzie analizowana.

Wynik z mojego testu:

$ php test.php 
array(1) { 
    ["foo"]=> 
    string(9) "foo (bar)" 
    ["00name1"]=> 
    string(49) "100 08/82-11/90 (443/445) Typový sešit [V] [27]" 
} 
+0

dziękuję, to bardzo pomaga! – Andurit