![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 3 Dołączył: 26.07.2010 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Witam otóż napotkałem na problem z sortowaniem URL'a, u mnie prezentuje się on następująco "/lang/controller/method/arg1/arg2" nic nadzwyczajnego.
Chcę ustawić tak, aby lang był rozpoznawany po ilości liter (strlen) == 2 (chcę używać oznaczeń ISO (pl/de/en itd)) i ma być on opcjonalny, czyli gdy nie wpiszemy żadnego langa ma ładować domyślny (pl) i 1 argument traktować jako kontroler. W kodzie prezentuje się to tak: Przy takim kodzie po wprowadzeniu urla "en/controller/method/arg1/arg2" uzyskuję:
Przy wprowadzeniu tylko "controller/method/arg1/arg2" uzyskuję:
Jak widać ucina mi kontroler z powodu array_shifta (tak się domyślam), co robię źle? Z góry dziękuję za pomoc. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Te testy, które chcesz zrobić, robisz tak:
- Ściągasz element z tablicy. Jak ściągnięty element ma 2 znaki, to to jest język. A jak nie ma? To co z nim robisz? Odpowiedź: zapominasz (masz puste przypisanie w operatorze ternary - zapewne tylko po to, by zachować składnię). Powinieneś (jedna z dwóch rzeczy): 1. testować $parts[0] na okoliczność wystąpienia dwóch znaków, i jeśli TRUE, to robisz to co robisz 2. robić to co robisz, ale zamienić samotne "$l" w operatorze ternary i wstawić tam kod w stylu array_unshift ($parts, $l); |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 3 Dołączył: 26.07.2010 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem już może tępo działam o tej porze ale coś takiego wykminiłem:
Po wywołaniu "kontroler/test/abc" mam :
Czyli jest ok. Ale tymczasem po wywołaniu "de/kontroler/test/abc":
Czyli jak by 2 razy unshiftnął to czy jak? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Sephirus 15.11.2012, 09:13:15 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 3 Dołączył: 26.07.2010 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Tak myślałem że w ternie nie wyjdzie, chciałem to krócej napisać, ale jest ok. Działa poprawnie, dziękuję bardzo za pomoc, leci oczywiście pomógł.
Chciałbym jeszcze o jedną rzecz zapytać, mianowicie chcę wprowadzić języki, czy lepiej będzie tłumaczenia trzymać w bazie czy w plikach? Tak wiem temat wielojęzykowości istnieje, przewertowałem go. Do trzymania tłumaczeń w bazie skłania mnie szybka edycja (choćby z panelu), ale czy jest to warte kosztem szybkości działania bazy itd? Jak wy trzymacie swoje langi? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Do trzymania tłumaczeń w bazie skłania mnie szybka edycja (choćby z panelu), Skorzystaj z bazy danych + cachowanie za pomocą np. memcached.ale czy jest to warte kosztem szybkości działania bazy itd? Jak wy trzymacie swoje langi? -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak myślałem że w ternie nie wyjdzie, chciałem to krócej napisać, ale jest ok. Wyjdzie ![]()
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:10 |