#php #regex #preg-replace #preg-replace-callback
#php #регулярное выражение #preg-заменить #preg-replace-обратный вызов
Вопрос:
целевой текст выглядит примерно так:
Lorem ipsum dolor #sit# amet, consectetur #adipisicing# elit, sed do #eiusmod# tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
соответствующие данные с хэштегами #sit #, #adipisicing#, #eiusmod # будут иметь вид массива:
array(
'42' => 'sit somewhere',
'43' => 'adipisicing...',
'63' => 'eiusmod...'
)
я хочу использовать preg_replace или preg_replace_callback, чтобы последовательно заменить хэштег на значение массива. чтобы получить результат в виде:
Lorem ipsum dolor <a href="/link/to/42" title="sit somewhere">#sit#</a> amet, consectetur <a href="link/to/43" title="adipisicing...">#adipisicing#</a> elit, sed do <a href="/link/to/63" title="eiusmod...">#eiusmod#</a> tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
как этого можно достичь?
Ответ №1:
$search = array(
'#sit#',
'#adipisicing#',
'#eiusmod#'
);
$replacement = array(
'42' => 'sit somewhere',
'43' => 'adipisicing...',
'63' => 'eiusmod...'
);
$str = str_replace($search, $replacement, $str);
Ответ №2:
Вероятно, вам лучше использовать str_replace .
Смотрите http://www.php.net/manual/en/function.str-replace.php