За последние 24 часа нас посетили 49216 программистов и 1805 роботов. Сейчас ищут 948 программистов ...

Подскажите, функция размножения {|||}

Тема в разделе "Прочие вопросы по PHP", создана пользователем nekit44, 22 мар 2016.

  1. nekit44

    nekit44 Активный пользователь

    С нами с:
    27 дек 2015
    Сообщения:
    39
    Симпатии:
    2
    Добрый день

    Подскажите может быть есть готовый компонент или решение для размножения текста. Например заголовка:
    Мама мыла {раму|окно}

    соотвественно должно получиться:
    Мама мыла раму
    Мама мыла окно

    я не силен в php полгода практики всего, запилил такой костыль, чтоб не казаться то не пробовал а сразу на форум спрашивать:
    Код (PHP):
    1. <?php
    2.                 $result = [];
    3.                 $text = 'Мама мыла {раму|окно}';
    4.                 $text = str_replace('  ',' ', $text);
    5.                 $result = preg_split("~[\s,]+~", $text);
    6.  
    7.                 foreach ($result as $ss) {
    8.                     if  (preg_match_all("~{~", $ss) && preg_match_all("~}~", $ss)){
    9.                         $skobki = ['{','}'];
    10.                         $ss = str_replace($skobki,'',$ss);
    11.                         $array = explode('|', $ss);
    12.                         $tt = 0;
    13.                         foreach ($array as $aa) {
    14.                             $tit_array[$tt] =   preg_replace("/\{.+\}/", $aa , $text);
    15.                             $tt++;
    16.                         }
    17.                     }
    18.                     else {
    19.                         $tit_array[0] = $text;
    20.                     }
    21.                 }
    22.                 ?>
    23.                 <?php foreach ($tit_array as $tit) {?>
    24.                     <p><?= $tit;?></p>
    25.                 <?php }?>
    Минусы моего "кода"
    - если поставить в {} пробел то не сработает.
    - Две {} не будет работать, и мозг закипать начинает как представляю как это сделать)

    Буду рад любой помощь
    Спасибо

    PS да я знаю, что пишу не очень красивый код.
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
  3. nekit44

    nekit44 Активный пользователь

    С нами с:
    27 дек 2015
    Сообщения:
    39
    Симпатии:
    2
    Спасибо, есть что почерпнуть но там человек немного другую задачу решает)
    буду разбираться, если может у кого есть на примете п данной теме или наработки был бы очень признателен
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    На эту тему я когда то видел уже готовое решение. На этом форуме заводили тему. Поиши.

    Добавлено спустя 13 минут 54 секунды:
    https://github.com/lastguest/DynamicString
     
  5. nekit44

    nekit44 Активный пользователь

    С нами с:
    27 дек 2015
    Сообщения:
    39
    Симпатии:
    2
    СПАСИБО!