|
|
|
|
|
для: Fractured#
(31.12.2009 в 13:19)
| | Блин.... Напиши пример полнастью пожалуйста, не могу сообразить | |
|
|
|
|
|
|
|
для: Stasila
(31.12.2009 в 13:16)
| | Нет, нужно с $s[$i] работать в цикле, а не с $s. И зачем каждый раз переопределять массивы $arr1, $arr2? Да и вообще, лучше юзать strtr(), потому как если будет UTF-8, то начнутся проблемы.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Fractured#
(31.12.2009 в 13:14)
| | Те так?
<?php
$s = preg_split('/(\\[.*?\\])/', $s, -1, PREG_SPLIT_DELIM_CAPTURE);
for($i = 0; $i < count($s); $i++)
{
if( $i & 1 )
{
# BB-тег
}
else
{
$arr1 = array("zh","Zh","ZH","yo","Yu","shc","Shc","SHC","yu","sh",
"ye","ya","Sh","SH","ch","Ch","CH","Yo","YO","Ya","YA",
"Ye","YE","i","'","c","u","k","e","n","g","z","h","''",
"f","x","v","a","p","w","j","y","r","o","l","d","s","m",
"t","b","Y","C","U","K","J","E","N","G","Z","H","F","X",
"V","A","P","R","O","L","D","S","M","I","T","B","W");
$arr2 = array("ж","Ж","Ж","ё","Ю","щ","Щ","Щ","ю","ш","э","я","Ш",
"Ш","ч","Ч","Ч","Ё","Ё","Я","Я","Э","Э","и","ь","ц",
"у","к","е","н","г","з","х","ъ","ф","ы","в","а","п",
"в","й","ы","р","о","л","д","с","м","т","б","Ы","Ц",
"У","К","Й","Е","Н","Г","З","Х","Ф","Ы","В","А","П",
"Р","О","Л","Д","С","М","И","Т","Б","В");
$s = str_replace($arr1,$arr2,$s);
}
}
$s = implode($s);
?>
|
| |
|
|
|
|
|
|
|
для: Stasila
(31.12.2009 в 13:05)
| | Ну там где текст — делай транслитерацию, там где BB-тег — ничего не делай. Хотя способ с рег. выражениями вообще туповатый. | |
|
|
|
|
|
|
|
для: Fractured#
(31.12.2009 в 12:24)
| | А можете пример дать с переводом одного тега хотя бы
там где вы комментарии поставили? | |
|
|
|
|
|
|
|
для: Stasila
(31.12.2009 в 10:14)
| |
<?php
$s = preg_split('/(\\[.*?\\])/', $s, -1, PREG_SPLIT_DELIM_CAPTURE);
for($i = 0; $i < count($s); $i++)
{
if( $i & 1 )
{
# BB-тег
}
else
{
# Текст
}
}
$s = implode($s);
?>
|
[поправлено модератором] | |
|
|
|
|
|
|
| Как сделать транслит чтоб он не переводил в тексте BB тэги?
Просто мне это необходимо чтоб текст сохранял форматирование... В моем распоряжение есть такая функция, но она возвращает пустоту, думаю из-за preg_replace функции. Помогите пожалуйста
[PHP]function latrus($string) /* Функция транслита */
{
$arr1 = array("zh","Zh","ZH","yo","Yu","shc","Shc","SHC","yu","sh",
"ye","ya","Sh","SH","ch","Ch","CH","Yo","YO","Ya","YA",
"Ye","YE","i","'","c","u","k","e","n","g","z","h","''",
"f","x","v","a","p","w","j","y","r","o","l","d","s","m",
"t","b","Y","C","U","K","J","E","N","G","Z","H","F","X",
"V","A","P","R","O","L","D","S","M","I","T","B","W");
$arr2 = array("ж","Ж","Ж","ё","Ю","щ","Щ","Щ","ю","ш","э","я","Ш",
"Ш","ч","Ч","Ч","Ё","Ё","Я","Я","Э","Э","и","ь","ц",
"у","к","е","н","г","з","х","ъ","ф","ы","в","а","п",
"в","й","ы","р","о","л","д","с","м","т","б","Ы","Ц",
"У","К","Й","Е","Н","Г","З","Х","Ф","Ы","В","А","П",
"Р","О","Л","Д","С","М","И","Т","Б","В");
$string = str_replace($arr1,$arr2,$string);
/* Anti Translit BB: spacing bb code words */
$arr3 = array("#\[[\s]*урл[\s]*=[\s]*([^\]]*)\]([^\[]*)\[[\s]*/урл[\s]*\]#i","#\[урл\](.+)\[/урл\]#isU","#\[имг\](.+)\[/имг\]#isU","#\[б\](.+)\[\/б\]#isU","#\[и\](.+)\[\/и\]#isU","#\[ем\](.+)\[\/ем\]#isU","#\[биг\](.+)\[\/биг\]#isU","#\[смалл\](.+)\[\/смалл\]#isU","#\[у\](.+)\[\/у\]#isU","#\[цоде\](.+)\[\/цоде\]#isU","#\[qуоте\](.+)\[\/qуоте\]#isU","#\[ред\](.+)\[\/ред\]#isU","#\[блуе\](.+)\[\/блуе\]#isU","#\[эллов\](.+)\[\/эллов\]#isU","#\[аqуа\](.+)\[\/аqуа\]#isU","#\[греен\](.+)\[\/греен\]#isU","#\[вхите\](.+)\[\/вхите\]#isU","#\[пйтхон\](.+)\[\/пйтхон\]#isU","#\[хтмл\](.+)\[\/хтмл\]#isU","#\[апаче\](.+)\[\/апаче\]#isU","#\[цпп](.+)\[\/цпп]#isU","#\[цс](.+)\[\/цс\]#isU","#\[цсс\](.+)\[\/цсс\]#isU","#\[делпхи\](.+)\[\/делпхи\]#isU","#\[йава\](.+)\[\/йава\]#isU","#\[йавасцрипт\](.+)\[\/йавасцрипт\]#isU","#\[перл\](.+)\[\/перл\]#isU","#\[пхп\](.+)\[\/пхп\]#isU","#\[сqл\](.+)\[\/сqл\]#isU","#\[вбсцрипт\](.+)\[\/вбсцрипт\]#isU","#\[х1\](.+)\[\/х1\]#isU","#\[х2\](.+)\[\/х2\]#isU","#\[х3\](.+)\[\/х3\]#isU","#\[цолор=([^\]]+){3,25}\](.+?)\[/цолор\]#isU","#\[цопй\]","#\[траде\]#isU","#\[цент\]#isU","#\[суп\](.+)\[\/суп\]#isU","#\[суб\](.+)\[\/суб\]#isU","#\[тхеме\](\d+)\[\/тхеме\]#isU","#\[хиде\](.+)\[\/хиде\]#isU");
$arr4 = array("#\[[\s]*url[\s]*=[\s]*([^\]]*)\]([^\[]*)\[[\s]*/url[\s]*\]#isU","#\[url\](.+)\[/url\]#isU","#\[img\](.+)\[/img\]#isU","#\[b\](.+)\[\/b\]#isU","#\[i\](.+)\[\/i\]#isU","#\[em\](.+)\[\/em\]#isU","#\[big\](.+)\[\/big\]#isU","#\[small\](.+)\[\/small\]#isU","#\[u\](.+)\[\/u\]#isU","#\[code\](.+)\[\/code\]#isU","#\[quote\](.+)\[\/quote\]#isU","#\[red\](.+)\[\/red\]#isU","#\[blue\](.+)\[\/blue\]#isU","#\[yellow\](.+)\[\/yellow\]#isU","#\[aqua\](.+)\[\/aqua\]#isU","#\[green\](.+)\[\/green\]#isU","#\[silver\](.+)\[\/silver\]#isU","#\[white\](.+)\[\/white\]#isU","#\[python\](.+)\[\/python\]#isU","#\[html\](.+)\[\/html\]#isU","#\[apache\](.+)\[\/apache\]#isU","#\[cpp](.+)\[\/cpp]#isU","#\[cs](.+)\[\/cs\]#isU","#\[css\](.+)\[\/css\]#isU","#\[delphi\](.+)\[\/delphi\]#isU","#\[java\](.+)\[\/java\]#isU","#\[javascript\](.+)\[\/javascript\]#isU","#\[perl\](.+)\[\/perl\]#isU","#\[php\](.+)\[\/php\]#isU","#\[sql\](.+)\[\/sql\]#isU","#\[vbscript\](.+)\[\/vbscript\]#isU","#\[h1\](.+)\[\/h1\]#isU","#\[h2\](.+)\[\/h2\]#isU","#\[h3\](.+)\[\/h3\]#isU","#\[color=([^\]]+){3,25}\](.+?)\[/color\]#isU","#\[copy\]#isU","#\[trade\]#isU","#\[cent\]#isU","#\[sup\](.+)\[\/sup\]#isU","#\[sub\](.+)\[\/sub\]#isU","#\[theme\](\d+)\[\/theme\]#isU","#\[hide\](.+)\[\/hide\]#isU");
$string = preg_replace($arr3,$arr4,$string);
return $string;
}[/PHP]
И кстатии с Наступающим Вас! ;) | |
|
|
| |
|