Я хотел бы получить строки, которые обрамляют строку, которую я знаю.Я использую preg_replace
, потому что мне также нужно заменить известную строку другой строкой.
Пример: Строка: <li class="testing" id="testing">$$</li>
Что я хотел бы получить: <li class="testing" id="testing">
и </li>
Пример² : строка erzg^esdbdf$$abcdefg
Что я хотел бы получить: erzg^esdbdf
и abcdefg
Вот мой текущий код, который нене работает:
$pattern = '/{{json: ' . $key . ', (.*)$$(.*)}}/';
Эти два разделителя могут быть тегами HTML или чем-либо еще.
Вот весь мой код:
public function parse_config()
{
$data = Helpers::theme_config('default');
$keys = [];
if(!$data or !$data['extra'][0])
return false;
$pattern = '/{{json: (.*),/';
preg_match($pattern, $this->htmlFile,$m);
foreach ($m as $key => $value)
if(($key - 1) % 2 == 0)
$keys[] = $value;
foreach ($keys as $key) {
$pattern = '/{{json: ' . $key . ', (.*)$$(.*)}}/';
$replace = '';
foreach ($data['extra'][0][$key] as $value)
$replace .= ' $1 ' . $value . ' $2 ';
preg_replace($pattern, $replace, $this->htmlFile);
}
}
(Helpers::theme_config
возвращает таблицу проанализированного файла JSON)
Все работает нормально, кроме preg_replace
.Я пытался в режиме реального времени использовать Regex, и мой шаблон ничего не улавливает ...
Моя цель - заставить эти два разделителя задать новые значения.
Надеюсь, кто-то знает, что не так смой шаблон
спасибо.