![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałem zrobić sobie funkcję językową, bo plik language.php z warunkami etc, jakoś brzydko mi wyglądał... No i wymyśliłem takie coś:
Funkcja znajduje się w pliku functions.php, plik ten jest dołączany za pomocą require do index.php i innych plików. Stała LOCALE to "locale". Pliki index.php i functions.php są w tym samym katalogu, pliki językowe są w locale/lang_pl.php i lang_en.php. Dalej w pliku index.php chcę echo'wać jedną ze zmiennych z lang_pl.php i nic to nie daje :/ Pozdrawiam Ten post edytował kuzdo 8.07.2010, 09:23:28 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ekhem...
Jak już poprawiasz mi, to: I pisałem wyżej, że jest sprawdzane, bo echuje pewną zmienną z plików językowych. Pliki są poprawnie wczytywane. @fifi209, nie rozumiesz mnie... Nie chcę stosować SMARTY dla kilku plików PHP, czy OPT (którego zresztą nie znam, ale to nie ważne)... Chcę napisać prostą funkcję, która będzie mi includowała jeden plik językowy zawierający całość... I naprawdę, żadne SMARTY itp. nie przydadzą mi się tutaj... Nie chcę strzelać z armaty do muchy... Z tego co zauważyłem, to tak jakby cały plik językowy był includowany tylko i wyłącznie do funkcji, czyli poza nią plik już nie działa... Ten post edytował kuzdo 7.07.2010, 23:10:55 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
to w czym problem? skoro jest poprawnie wczytywany i są w nim poprawnie przypisane wartości do zmiennych i wczytywanie pliku jest wyżej w kodzie niż odwołanie do zmiennych to wszystko musi działać
edit: skoro tutaj wszystko działa to pokaż ten kawałek kodu, w którym nie działa Ten post edytował tehaha 7.07.2010, 23:09:03 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
INDEX.PHP
FUNCTIONS.PHP
Zmienna $tekst jest zawarta w pliku lang_pl.php. Ten post edytował kuzdo 8.07.2010, 09:23:12 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
a jak w pliku lang dasz echo $tekst; to się wyświetla po otwarciu index?
hmm a może problemem jest to, że wywołujesz require wewnątrz funkcji i wtedy te zmienne są dostępne tylko wewnątrz funkcji, musiałbyś dać global $tekst; wewnątrz funkcji, dla testu daj echo $tekst; zaraz po require wewnątrz funkcji |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dam echo w funkcji, to zmienna wyświetli się, to już stwierdziłem wyżej, że zauważyłem, że include działa tylko w funkcji...
Da się w jakiś sposób dołączać funkcją inne pliki, tak żeby ich zmienne były dostępne poza funkcją? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
tak, możesz np sobie te teksty trzymać w tablicy np. $lang, i zamiast nazw zmiennych będziesz operował na nazwach kluczy np. $lang['tekst']; i na końcu funkcji dajesz return $lang; lub wewnątrz funkcji global $lang
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, musiałbym stosować dwuwymiarowe tablice... Ale dzięki za pomoc
![]() Jeżeli jednak ktoś miałby inny ciekawszy pomysł, to proszę pisać ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no możesz jeszcze to require umieścić poza funkcją a w funkcji tylko wygenerować nazwę pliku, który ma zostać zainkludowany
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli jednak lepiej zaincludować plik language.php z taką zawartością:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:30 |