Здравствуйте!
Проблема состоит в следующем:
Существует к примеру текст:
$text = "[n]Саша[/n] с [n]Машей[/n] пошли гулять вечером в парк имени [n]Николая Васильевича[/n].";
[n][/n] - это Ббкод, чтобы выделить нужный участок текста.
Так вот, как мне выбрать все те слова, которые заключены в этот Ббкод?
Не въезжаю...над проблемой не первый день бьюсь. Помогите и строго не судите, кого достал =))
Т.е. чтобы я получил такую строку сот той переменной:
Саша Машей Николая Васильевича
Понимаю, что preg_match_all в помощь. Но как код организовать. Напишите пожалуйста. Прошу уже на блюдечке дать,потому что уже нерничаю Гг может понимаете меня, когда копаешь одно и тоже. Бывает у всех, что на какой то ерунде можем застрять))
02 Дек 2010, 16:59
$text = 'Саша [n]Маша[/n] Дима [n]Вася[/n]';
preg_match_all('#\[n\](.*?)\[/n\]#', $text, $find);
print_r($find['1']);
Неуч, топ тема есть для таких вопросов. Я например так эту задачу решил:
<?php
$text = "[n]Саша[/n] с [n]Машей[/n] пошли гулять вечером в парк имени [n]Николая Васильевича[/n].";
$n = preg_match_all('/\[n\](.+)\[\/n\]/isU', $text, $out);
$mass = array();
for($i=0; $i<=$n; $i++){
$mass[$i] = preg_replace('/\[n\](.+)\[\/n\]/i', '\\1', $out[0][$i]);
}
echo $mass[0]."<br/>".$mass[1]."<br/>".$mass[2];
?>
<?php
$text = '[n]Саша[/n] с [n]Машей[/n] пошли гулять вечером в парк имени [n]Николая Васильевича[/n].';
preg_match_all('/\[n\](.*?)\[\/n\]/si', $text, $result);
foreach ($result[1] as $f)
{
echo $f.'<br/>';
}
?>
<?php
$text = "[n]Саша[/n] с [n]Машей[/n] пошли гулять вечером в парк имени [n]Николая Васильевича[/n].";
preg_match_all('#n\](.*?)?\[/n#',$text,$res);
print_r($res[1]);
?>
У меня велосипед
В 4 посте лучше, только спец символы в регулярке экранировать нужно)))))
Из примера HiJecker'а на печать пойдёт
echo $find[1][0]."::".$find[1][1]."::".$find[1][2];