Замена по шаблону

Тема в разделе "Регулярные выражения", создана пользователем Juri, 23 мар 2012.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    Помогите по тексту заменить строки по шаблону


    Есть html код например

    HTML:
    <form id="registerform" name="registerform">
        <div id="signup-main">
                      <div class="txt-fld">
                        <label for="">{str_1}</label>
     
                        <input id="" class="good_input" name="login" type="text" />
     
                      </div>
                      <div class="txt-fld">
                        <label for="">{str_2}</label>
                        <input id="" name="mail" type="text" />
                      </div>
                      <div class="txt-fld">
                        <label for="">{str_3}</label>
     
                        <input id="" name="pass" type="password" />
     
                      </div>
                      <div class="btn-fld">
                      <button type="button" onclick="register()">{str_4}</button>
    </div>  </div>
                    </form>
    есть массив
    PHP:
    $langarray = array(
        
    'str_1' => 'Регистрация',
        
    'str_2' => 'Регистрация на сайте'
    )
    Нужно в html заменить строки {str_1} {str_2} {str_x} на соответствующие элементы массива

    Как и чем это можно сделать?
    Заранее спасибо
     
  2. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    PHP:
    ob_start();
    require(
    'templates/test.tpl');
     
    $langarray = array(
        
    'str_1' => 'Регистрация',
        
    'str_2' => 'Регистрация на сайте'
    );
     
    echo 
    preg_replace_callback('/{([^}]+?)}/',create_function('$a','global $langarray; return (isset($langarray[$a[1]]) ? $langarray[$a[1]] : $a[0]);'),ob_get_clean());
    с пропуском отсутствующих элементов
     
    Juri нравится это.
Статус темы:
Закрыта.