Помогите решить проблему с конвертером

Garret_Dark

Новичок
Помогите решить проблему с конвертером

Есть у меня форум на движке ExBB и нужно его срочно переконвертировать на другой движок (много сообщений, а поиск на этом файловом движке не рулит).
Конвертер у меня есть, но как всегда, чтото гдето не срастается, куча ошибок - их я поправил.
Нужна самая малость, при конвертировании BB кодов конвертер вставляет рендомное число, а не должен!
Вот код, важна именно строка цитаты (quote), выделил так "-вот эта!".

Код:
// Функция обработки ббкодов с использованием идентификатора
function bbuid($bbuid = "", $str = "") {
if (!$bbuid) return substr(md5(mt_rand(0, 999999999).microtime()), 0, 10);
$search = array(
"#\[b\](.+?)\[/b\]#is",
"#\[i\](.+?)\[/i\]#is",
"#\[u\](.+?)\[/u\]#is",
"#\[(q|quote)\](.+?)\[/(q|quote)\]#is",
"#\[(q|quote)=(.+?)\](.+?)\[/(q|quote)\]#is",        -вот эта!
"#\[code\](.+?)\[/code\]#is",
"#\[list\](.+?)\[/list\]#is",
"#\[list=(1|a)\](.+?)\[/list\]#is",
"#\[\*\]#is",
"#\[img\](.+?)\[/img\]#is",
"#\[size=(.+?)\](.+?)\[/size\]#is",
"#\[color=(.+?)\](.+?)\[/color\]#is"
);
$replace = array(
"[b:".$bbuid."]$1[/b:".$bbuid."]",
"[i:".$bbuid."]$1[/i:".$bbuid."]",
"[u:".$bbuid."]$1[/u:".$bbuid."]",
"[quote:".$bbuid."]$2[/quote:".$bbuid."]",
"[quote:".$bbuid."=\"$2\"]$3[/quote:".$bbuid."]",                  -вот эта!
"[code:".$bbuid."]$1[/code:".$bbuid."]",
"[list:".$bbuid."]$1[/list:u:".$bbuid."]",
"[list=$1:".$bbuid."]$2[/list:o:".$bbuid."]",
"[*:".$bbuid."]",
"[img:".$bbuid."]$1[/img:".$bbuid."]",
"[size=$1:".$bbuid."]$2[/size:".$bbuid."]",
"[color=$1:".$bbuid."]$2[/color:".$bbuid."]"
);
return preg_replace($search, $replace, $str);
}
При таких установках, цитата конвертится из
имя_юзера написал(а):
в чтото вроде такого
[quote:234564d01=/"имя_юзера/']сама цитата[/quote315873231d64]
А должно
Код:
 [quote="имя_юзера"]сама цитата[/quote]
Все остальное можно просто убрать (вобще не понимаю, зачем конвертировать то, что одинаково выглядит на обоих движках).
Сам я PHP не знаю, потому искал ошибку методом тыка...
Вобщем, ребята, кто знает, выручайте плиз!

Блин вся проблема в том, что на ЕксББ имя юзера без кавычек, а на phpBB с кавычками :(

P.S. Извиняюсь, я честно попробовал порыться по FAQ, но в PHP я ноль и так найти там чтото подобное не смог
 

x-yuri

Новичок
твое случайное число - $bbuid, вторая строка должна выглядеть так
PHP:
"[quote=\"$2\"]$3[/quote]"
я правда так и не понял, тебе нужна эта функция или надо просто выяснить, что не работает
 

Garret_Dark

Новичок
Мне нужна эта функция чтобы
Из
имя_юзера написал(а):
Конвертнулось в это
Код:
[quote="имя_юзера"]сама цитата[/quote]
Все остальные функции просто ненужны (незнаю зачем их сюда вобще влепили).

Большо спасибо за ответ, попробую поступть так.
 

x-yuri

Новичок
ну если uid не нужен и остальные преобразования тоже, то
PHP:
function bbuid($str) {

    return preg_replace(
        "#\[(q|quote)=(.+?)\](.+?)\[/(q|quote)\]#is", 
        "[quote=\"$2\"]$3[/quote]", 
        $str);
}
 

zerkms

TDD infected
Команда форума
x-yuri
если ты уже захватил в первой паре скобок q|quote - почему бы во втором не использовать эту подстроку через \\1 ?
 
Сверху