Распарсить строку

Dark Wizard

Гуру форума
Регистрация
23 Сен 2007
Сообщения
194
Реакции
80
Приветствую,

есть строка типа
Код:
[:ru]русский текст[:en]английский текст[:]

как мне вывести эти значения, в зависимости от языка? например:

Код:
if ($lang == 'ru'){ echo $rus; }elseif ($lang == 'en'){echo $eng;}
 
Сделал пока так:

Код:
function show_name($name){
  $name = str_replace('[:ru]', '', $name);
  $name = str_replace('[:]', '', $name);
  $aname = explode('[:en]', $name);
  return $aname[0];
}
 
Можно без этих загагулин - [:en], проверять к какому языку относятся слова.
 
Код:
preg_match_all('/\:(\S+)\](.*)\[/sU', '[:ru]русский текст[:en]английский текст[:]', $out);

$result = [];
foreach($out[1] as $k => $v) {
   $result[$v] = $out[2][$k];
}

var_dump($result);

if($lang == 'ru') echo $result[$lang];
 
Назад
Сверху