[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многоуровневые фигурные скобки
Altai
Взять к примеру предложение:

Млекопитающие {лат. Mammalia} — класс {позвоночных {животных}, основной {отличительной} {особенностью {которых является вскармливание} детёнышей} молоком}{подрастая, постепенно переходят с молока на твёрдую пищу}.

Как поместить всё, что под скобками в массив, причём если в скобках есть скобки - то поместить это в массив второго уровня, и т.д. до бесконечности? Мучаюсь над этой задачей целый день.
Толкового ничего не получается. Есть у кого-то готовый скриптик на такой случай?
andrey888
serialize не поможет ?

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Altai
Цитата (andrey888 @ 11.11.2013 - 22:47)
serialize не поможет ?

Посмотрел описание serialize -

Генерирует пригодное для хранения представление переменной

Это полезно для хранения или передачи значений PHP между скриптами без потери их типа и структуры.


И не представляю, как эта функция может помочь в моём случае....
dr.nomore
По-моему это токены. http://us1.php.net/strtok
kaww
Altai, в универе задали?
Вот:
$str = 'Млекопитающие {лат. Mammalia} — класс {позвоночных {животных}, основной {отличительной} {особенностью {которых является вскармливание} детёнышей} молоком}{подрастая, постепенно переходят с молока на твёрдую пищу}';
function myParser(&$string, $open = '{', $close = '}')
{
$result = array();
$i = 0;
while (($strelen = mb_strlen($string, 'utf-8'))) {

$l = mb_substr($string, 0, 1, 'utf-8');
$string = mb_substr($string, 1, $strelen - 1, 'utf-8');
if ($l == $open) {

$result[++$i] = myParser($string, $open, $close);
++
$i;
} else if ($l == $close) {

break;
} else {

if (!isset($result[$i])) {

$result[$i] = '';
}
$result[$i] .= $l;
}
}

return $result;
}

$result = myParser($str);
var_dump($result);
Быстрый ответ:

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