Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nawiasy klamrowe {} jako zmienne w php
Forum PHP.pl > Forum > PHP
ghost1511
Czuwam nad sprawnością pewnego sklepu internetowego, nie jestem jego autorem jednak od czasu do czasu dodaje jakieś proste modyfikacje i poprawiam ewentualne błędy. System ostatnio się wysypał i nie wyświetla wartości zmiennych które są wyświetlane w nawiasach klamrowych, zamiast tego wyświetlany jest ciąg znaków, który ma zostać podmieniony na wartość zmiennej np.:
  1. {SYMBOL_JM}

Z racji mojego niewielkiego doświadczenia, nie spotkałem się z czymś takim, a dopóki działało nie interesowałem się tym z braku czasu.
i teraz pytanie ... co oznaczają te nawiasy ? co to za składnia? gdzie można zobaczyć czy wartości które powinny się tam wyświetlić zdefiniowane są poprawnie ?
zegarek84
przeczytaj w manualu dział:
http://www.php.net/manual/pl/language.variables.variable.php
ghost1511
no dobrze ... u mnie w apache'u działa składnia
  1. ${nazwa_zmiennej}
natomiast nie dziala
  1. {nazwa_zmiennej}
Skąd to się bierze ? Należy włączyć jakąś bibliotekę?

edit:
poza tym znacznik nie znajduje się w bloku kodu php a w bloku html:
  1. <P><U>Nazwa:</U><STRONG>{NAZWA_ART}</STRONG></P>
i to działa.
ActivePlayer
pokaz kawałek kodu, który nie działa, bo chyba nie do konca wiesz o co pytasz;-)
ghost1511
Oto fragment czystego kodu HTML, który jest w pliku php (najwidoczniej jest parsowany przy wyświetlaniu) :
  1. <P><U>Producent:</U><STRONG>{text}</STRONG></P>
  2. <P><U>j.m.:</U><STRONG>{SYMBOL_JM}&nbsp;</STRONG></P>
  3. <P><U>Waga:</U><STRONG>{MASA}</STRONG></P>


i problem objawia się tym, że
  1. {text} {MASA}
zamienione są na odpowiednie wartości. Natomiast gdzieś pojawił się błąd i
  1. {SYMBOL_JM}
nie jest zamieniony i wyświetla się w takiej postaci.
ActivePlayer
jest w pliku php czy jest w pliku jakiegoś systemu szablonów? (np. smarty?)
zegarek84
no teraz to już trochu inaczej - tak - jest to szablon strony i jest on parsowany przez skrypt php - jednak jak ktoś ma Ci pomóc skoro nie napisałeś, z jakiego systemu szablonów korzystasz ani nie podałeś nazw plików/struktury... -> powinieneś sięgnąć do manuala danego systemu szablonów... lub przeszukaj cały projekt pod kątem np. występowania ciągów znaków {MASA} lub samego MASA jeśli korzystasz z jakiegoś IDE - wyświetli Ci się lista plików i linie kodu w których występuje ten ciąg znaków (zaznacz przy wyszukiwaniu by brało pod uwagę wielkość znaków) - mniej więcej w tym samym miejscu będziesz miał SYMBOL_JM który jakoś już zlokalizujesz ręcznie w kodzie...
ghost1511
Jest to indywidualnie napisany cms więc nie podałem jego nazwy. Z czego korzystają ciężko jest wyczuć. Ogólnie niezły bajzel jest w kodzie i ciężko się w czymkolwiek połapać. A sama firma nieźle zdziera za każdą informację (na szczęście to nie mój problem) dlatego starałem się dojść do tego sam. Wielkie dzięki za zainteresowanie.
zegarek84
najprawdopodobniej będzie to oparte o wyrażenia regularne - utwórz projekt ze wszystkimi plikami np. w netbeans i wyszukaj w całym projekcie jak wspomniałem pod kontem występowania określonych fraz i wyświetli Ci jak już pisałem listę plików - po dwukliku na wyniku wyszukiwania przeniesie Cię dokładnie do lini wystepowania danej frazy...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.