![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 28.07.2003 Skąd: Brwinów koło Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Mam zmienna w ktorej trzymam kod HTML szablonu. W owym szablonie sa specjalne znaczniki {cos_tam}. Chce aby byly one podmieniane na to co jest w tablicy $LANG[szablony].
Napisalem cos takiego: [php:1:c559ae53f7]$this->kod_HTML = preg_replace("/{(.*)}/", "{$LANG[szablony][$1]}" , $this->kod_HTML);[/php:1:c559ae53f7] ale wyswietla mi blad: Kod Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in D:wwwpublic_html_polskasystemengine.php on line 309
Moze ktos wie, gdzie robie blad? -------------------- www.humor-na-gg.w.pl
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
zmienna nie może się nazywać $1
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 28.07.2003 Skąd: Brwinów koło Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Cytat zmienna nie może się nazywać $1
Moze. Zmienna $1 zawiera to co zostalo znalezione w (.*). To sa akurat podstawy wyrazen regularnych. [php:1:fb66924a98]$this->kod_HTML = preg_replace("/{(.*)}/" , "$1", $this->kod_HTML);[/php:1:fb66924a98] zwraca dokladnie to co powinien, ale za nic nie moge umiescic wyniku wyszukiwania jako nazwy komorki w tabeli ![]() Moze na przykladzie: W kodzie jest {Help} a ja mam zmienna $LANG[szablony][Help] = 'Pomoc'; i chce by mi wlasnie to wstawilo... Moze wogole zle sie za to zabieram?? -------------------- www.humor-na-gg.w.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Sprobuj tak:
[php:1:12cde715e1]$this->kod_HTML = preg_replace("/{(.*)}/e", "'{'.$LANG[szablony]['$1'].'}'" , $this->kod_HTML);[/php:1:12cde715e1] |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 18.07.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nazw zmiennych dotyczą te same reguły, co innych rodzajów nazw w php. Poprawna nazwa zmiennej zaczyna się od litery lub znaku podkreślenia "_", po których może wystąpić dowolna ilość liter, cyfr lub znaków podkreślenia.
Cytat $4site = 'not yet'; // niepoprawna nazwa - zaczyna się od cyfry
-------------------- Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 28.07.2003 Skąd: Brwinów koło Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Jak juz sie przerzucamy cytatami z manuala:
Cytat mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])
Searches subject for matches to pattern and replaces them with replacement . If limit is specified, then only limit matches will be replaced; if limit is omitted or is -1, then all matches are replaced. Replacement may contain references of the form n or (since php 4.0.4) $n, with the latter form being the preferred one. borec -> o wyjatkach od reguly chyba slyszales?? ![]() -------------------- www.humor-na-gg.w.pl
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Guzik a nie wyjatek. Co innego zmienna phpowa, a co innego referencja w wyrazeniach. To $1 nie jest zmienne phpowa i jak parser trafi na to w trybie w ktorym interpretuje $ jako poczatek nazwy zmiennej to posle Cie na drzewo. Musisz przekazac _ciag znakow_ $1 do parametru funkcji preg_replace i dopiero ta funkcja zinterpretuje to jako referencje w wyrazeniu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:16 |