Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana ((HELLO)) na $lang[HELLO]
Forum PHP.pl > Forum > PHP
Tarcil
Witam

Mam następującą tablicę:
  1. <?php
  2. $lang = array(
  3. 'LANG' => 'polski',
  4. 'HELLO' => 'Cześć',
  5. 'GOODBY' => 'Do zobaczenia',
  6. 'THANK' => 'Dziękuję',
  7. 'PLEASE' => 'Proszę';
  8. );
  9. ?>


Chcę utworzyć powiedzmy 15 takich tablic, dla różnych języków a następnie w następującym kodzie zamienić wszystkie ((LANG)) (i podobne) na odpowiednie wartości z tej tablicy.

  1. <p>Wybrany język: <b>((LANG))</b></p>
  2. <p>W tym języku witamy się używając słowa: <b>((HELLO))</b>, a żegnamy za pomocą <b>((GOODBYE))</b>.</p>
  3. <p>Jeśli chcesz podziękować za coś mówisz <b>((THANK))</b>, a jeśli o coś poprosić używasz słówka <b>((PLEASE))</b>.</p>


Jest ktoś, kto może mi pomóc?

Dziękuję i pozdrawiam.
Cienki1980
Wystarczy wykorzystać funkcje str_replace

Można tam podawać całe tablice zamienników ( polecam Example 1 fragment z zamianą owoców na niezdrowe jedzenie biggrin.gif )
Tarcil
Dzięki Cienki1980!

Ale, bardziej mi chodziłoby o wyciągnięcie z nawiasów tekstu np. HELLO i użycie go jako klucza tablicy $lang... A tego nie zrobię str_replacem chyba...

Mam jeszcze jeden pomysł. Jak sprawdzę - dam znać.

Tarcil
Pozdrawiam!

Zrobiłem to tak:

  1. <?php
  2. $array = explode('((', $string);
  3.    
  4.    foreach($array as $key=>$value)
  5.        {
  6.        if($value != '')
  7.            {
  8.            //tablica replacers przechowuje wyciągnięte z pliku rzeczy do zastąpienia
  9.            $replacers[] = substr($value, 0, strpos($value, '))'));
  10.            }
  11.        }
  12. ?>


Efektem jest tablica:

  1. <?php
  2. Array ( [0] => LANG [1] => HELLO [2] => GOODBYE [3] => THANK [4] => PLEASE )
  3. ?>
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.