Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parser obslugi jezyka
Forum PHP.pl > Forum > PHP
jestemacid
Czesc,

Do mojego skryptu stworzylem plik z tablica jezykowa $vlang, w ktorej trzymam zmienne jezykowe. Chcialbym zeby poprzez jakas funkcje zamienialo elementy oznaczone %numer na odpowiednie zmienne.
Najprosciej wytlumaczyc to na przykladzie:

$vlang['File_not_exists'] = 'Plik %1 nie istnieje w katalogu %2';

Wywolanie:

$array[1] = 'plik.php';
$array[2] = 'katalog';

append_lang_var($vlang['File_not_exists'], $array);

zwracaloby:

Plik plik.php nie istnieje w katalogu katalog

Jak napisac taka funkcje, np. poprzez wyrazenia regularne? Probowalem na pare roznych sposobow i nic nie wychodzilo.
phpion
zainteresuj sie funkcja sprintf" title="Zobacz w manualu PHP" target="_manual
smile.gif
Martio
Użyj funkcji sprintf.


  1. <?php
  2. $vlang['File_not_exists'] = 'Plik %s nie istnieje w katalogu %s';
  3.  
  4. $array[1] = 'plik.php';
  5. $array[2] = 'katalog';
  6.  
  7. echo sprintf($vlang['File_not_exists'], $array[1], $array[2]);
  8. ?>
Sabistik
albo lepiej:
  1. <?php
  2. $vlang = 'Plik %s nie istnieje w katalogu %s';
  3.  
  4.  
  5. $array[0] = 'plik.php';
  6. $array[1] = 'katalog';
  7.  
  8. function printf_array($format, $arr)
  9. {
  10.  return call_user_func_array('printf', array_merge((array)$format, $arr));
  11. }
  12.  
  13. printf_array($vlang, $array);
  14. ?>
jestemacid
Ślicznie dzięki! O to mi chodziło smile.gif
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.