namdvili » 2014.02.21 16:54

как сделать функцию транслита для любого языка?
принцип надо как на bbcode,
например [ru] tekst [/ru]

Gemorroj » 2014.02.21 18:32

ну так же как и все остальное. задавай вопрос конкретнее. проблема с парсингом ббкода? или с функциями транслита?

namdvili » 2014.02.22 01:38

Код:

1
span style="color: #0000BB"><?phpfunction trans($a) { $b = array('a','b','v','g','d','e'); $g = array('а','б','в','г','д','е'); return str_replace($b,$g,$a);}function bb_trans($text) { $find = array('~\[ru\](.*?)\[/ru\]~s'); $replace = array(trans('$1')); return preg_replace($find,$replace,$text);}$text = 'abvgd [ru] abvgd [/ru] abvgd';echo bb_trans($text);

не работает :)
и не знаю где причина или как сделать иначе.

Gemorroj » 2014.02.22 01:54

Код:

1
span style="color: #0000BB"><?phpfunction trans($str) { return str_replace( array('a','b','v','g','d','e'), array('а','б','в','г','д','е'), $str );} function bb_trans($text) { return preg_replace_callback('~\[ru\](.*?)\[/ru\]~si', function ($matches) { return '[ru]' . trans($matches[1]) . '[/ru]'; }, $text);}$text = 'abvgd [ru] abvgd [/ru] abvgd';echo bb_trans($text);

требует php 5.3
если нужна поддержка php 5.2 переделать несложно.

namdvili » 2014.02.22 02:06

спасибо спасибо спасибо