![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Piszę sobie teraz coś w stylu edytora konfiguracji, który bazuje na czystym źródle.
I na tego typu kawałkach kodu grzęznę. Wszystko by było ok, gdyby nie było subtablic. Traktować tego eval" title="Zobacz w manualu PHP" target="_manualem nie chcę, nie mam pomysłu na to, aby zrobić z tego uzyteczną tablicę, np: Kod k1=>v1 k2=>v2k1=>v2v1 v2k2=>null Myślałem, żeby przetworzyć to jak XML, ale tam są przecież nazwy znaczników na początku i na końcu bloku, a tu tylko nawias. Przyszedł mi jeszcze do głowy pomysł, żeby robić stosy przez nawiasy otwierające/kończące, ale to IMHO niezbyt dobre rozwiązanie, bo wystarczy dać (2+2) jako wartość i już się sytuacja komplikuje... (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) Ma ktoś jakieś pomysły? Ślęczę nad tym już ładny kawałek czasu i nijak nie mogę tego rozgryźć... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 7 Dołączył: 4.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli trzymanie danych konfiguracyjnych w postaci czystego PHP nie jest warunkiem koniecznym, to zainteresuj się formatem JSON (http://www.json.org/). Jest znacznie wygodniejszy w użyciu (do tego celu) niż XML - przypomina zserializowaną tablicę, lecz jest prostszy i przyjemniejszy dla oka (co ważne w przypadku ręcznej edycji!).
W PHP >= 5.2.0 masz do dyspozycji f-cje json_encode/json_decode - jeżeli korzystasz ze starszej wersji, możesz skorzystać z PECL-a: http://pecl.php.net/package/json. Jeżeli pozostaniesz przy czystem PHP-ie, to nie ma sensu unikać eval'a, bo skończysz na napisaniu od zera własnego parsera PHP, który z definicji będzie miał wszystkie te same wady (np. bezpieczeństwo), lecz w przeciwieństwie do parsera Zenda nie będzie miał za sobą kilkunastu lat debugowania i rozwijania przez środowisko open source. JL |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 07:57 |