У меня есть строка текста ($ contents), содержащая различные теги в стиле XML, которые я хотел бы преобразовать в соответствующее значение в массиве пар ключ-значение ($ tagArray).
$contents = "<text>Text element</text><break><list><bullet>Bullet text</bullet></list>";
$tagArray = array(
"image" => "img",
"title" => "h1",
"text" => "p",
"break" => "br",
"list" => "ul",
"subtitle" => "h2",
"bullet" => "li",
);
$keys = array_keys($tagArray);
for($i=0; $i < count($keys); ++$i) {
$re = '#<' . $keys[$i] . '>(.*?)</' . $keys[$i] . '>#';
$replaced_tags = preg_replace($re, $tagArray[$keys[$i]] , $contents);
echo $replaced_tags
}
Моя цель вывода для $ replace_tags:
<p>Text element</p><break><ul><li>Bullet text</li></ul>
Мне придется обрабатывать разрыв отдельно, так как он не содержит закрывающей скобки в строке содержимого $.