[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: опять регулярка....
Romms
Вот есть код:
class asd{
function func($aa){
$aa[1]=$this->f($aa[1]);
return "<i>".$aa[1]."</i>";
}

function f($txt) {

$txt = preg_replace_callback("/<b>(.*)<\/b>/i", array($this, 'func'), $txt);
return $txt;
}
}

$rr=new asd();
echo $rr->f("<b> <b>11111 <b>22222</b> </b><b>33333</b> </b>");

результат:
Цитата
11111 22222 33333
<i> <i>11111 <i>22222</b> </i><b>33333</i> </i>

как сделать чтобы было так:
Цитата

<i> <i>11111 <i>22222</i> </i><i>33333</i> </i>

(Постой заменой "[b]" на "<i>" не пойдёт)
икал - не нашел....(может плохо искал... unsure.gif )



Спустя 10 часов, 8 минут, 34 секунды (30.11.2009 - 08:45) Romms написал(а):
Неужели никто не знает?!

Спустя 21 минута, 38 секунд (30.11.2009 - 09:06) glock18 написал(а):
<b>(.*?)<\/b>

Спустя 10 минут, 6 секунд (30.11.2009 - 09:16) Romms написал(а):
было... да мне надо не только заменить, а й достать значения между тегами...

Спустя 3 минуты, 5 секунд (30.11.2009 - 09:19) glock18 написал(а):
это как-то мешает?

хотя не покатит. с любыми вложенности тегов, парсить только. можно, если лениво, сделать сплит по [<>]. тогда пройти по массиву и анализировать каждую часть. задача менее скучная, чем парсинг строки, но естественно медленнее.

Спустя 7 минут, 45 секунд (30.11.2009 - 09:27) Romms написал(а):
Вот петерн:
Цитата
/<b>(.*?)<\/b>/i
Вот начальный текст:
Цитата
<b> <b>11111 <b>22222</b> </b><b>33333</b> </b>

Вот результат:
Цитата
<i> <b>11111 <b>22222</i> </b><i>33333</i> </b>

А надо:
Цитата
<i> <i>11111 <i>22222</i> </i><i>33333</i> </i>

Спустя 1 минута, 35 секунд (30.11.2009 - 09:29) Romms написал(а):
Цитата
сплит по [<>].

а это как?

Спустя 1 час, 26 минут, 6 секунд (30.11.2009 - 10:55) glock18 написал(а):
preg_split читай
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.