Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmiana ciągów w {} na nazwy zmiennych
Forum PHP.pl > Forum > Przedszkole
rasgan
Witam,

mam niewielki problem, ale raczkuję na tyle by nie umieć sobie z nim poradzić. Chodzi mi o to, że do zmiennej $html wczytuję plik zbudowany ze znaczników html. W moim pliku zmieniają się różne rzeczy (data, adresy, nazwy) według pewnego szablonu. Chciałbym by pewne stałe dane, tak jak data, w pliku HTML były zapisane tak: {DATA}, {ADRES}. Po wczytaniu do zmiennej $html poleceniem:
Kod
$html = fread(fopen('szablon.tpl', 'r'), filesize('szablon.tpl'));

mojego pliku, chciałbym zastąpić {DATA} zmienną $data czy {ADRES} zmienną $adres wcześniej zdefiniowaną w skrypcie.
Kod
$data = date('Y-m-d');
$adres = 'Moj adres';
$html = fread(fopen('szablon.tpl', 'r'), filesize('szablon.tpl'));
tutaj powinna być zamiana znaczników w {} na zmienne zdefiniowane wcześniej.


Może mi ktoś doradzić jak to zrobić?
tommy4
$search = array("{DATA}", "{ADRES}");
$replace = array($data, $adres);
$text = str_replace($search, $replace, $text);

Potem tylko dodajesz elementy do $search i $replace.
rasgan
A dało by się jakoś tak zrobić żebym to miał w jednej tablicy? Łatwiejsza edycja i mniejsza szansa się pogubić w tym wszystkim, bo przy 20 zmiennych robi się już koszmar.

Coś podobnego widziałem w funkcji plCharset
Kod
function plCharset($string, $type = ISO88592_TO_UTF8) {
        $win2utf = array(
          "\xb9" => "\xc4\x85", "\xa5" => "\xc4\x84",
          "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
          "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
          "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
          "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93",
          "\x9c" => "\xc5\x9b", "\x8c" => "\xc5\x9a",
          "\xbf" => "\xc5\xbc", "\x8f" => "\xc5\xbb",
          "\x9f" => "\xc5\xba", "\xaf" => "\xc5\xb9",
          "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83"
        );
        
        $iso2utf = array(
          "\xb1" => "\xc4\x85", "\xa1" => "\xc4\x84",
          "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
          "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
          "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
          "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93",
          "\xb6" => "\xc5\x9b", "\xa6" => "\xc5\x9a",
          "\xbc" => "\xc5\xba", "\xac" => "\xc5\xb9",
          "\xbf" => "\xc5\xbc", "\xaf" => "\xc5\xbb",
          "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83"
        );


Tylko nie bardzo wiem jak by to zaadoptować.

EDIT:
Ok, poradziłem sobie w taki sposób:
Kod
$replace = array(
                '{WIERZ_NAZWA}' => $WIERZ_NAZWA,
                '{KONF_MIEJSCE_WYSTAWIENIA}' => $KONF_MIEJSCE_WYSTAWIENIA
            );
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.