Я пытаюсь получить значение переменной и добавить его в строку для вывода html-элементов. Вот мой код:
// String
$str = 'Some validations [IF TEST]<a href="text.html">firstValue</a>[ELSEIF TEST1]secondValue[/IF] in [IF OK]thirdValue[/IF] end of string.';
// Regex
$do = preg_match_all("/\[IF (.*?)\](.*?)(\[\/IF\]|\[ELSEIF(.*?)\](.*?)\[\/IF\])/i", $str, $matches, PREG_SET_ORDER);
$str = str_replace("[IF ". $matches[0][1] ."]", "<?php if($". $matches[0][1] ."){ echo('".$matches[0][2]."');} ?>", $str);
echo $str;
Однако по некоторым причинам, когда я использую $ match [0] [2], он ломает мою строку, давая в браузере следующий результат:
Some validations firstValue');} ?>firstValue[ELSEIF TEST1]secondValue[/IF] in [IF OK]thirdValue[/IF] end of string.
и это в источнике:
Some validations <?php if($TEST){ echo('<a href="text.html">firstValue</a>');} ?><a href="text.html">firstValue</a>[ELSEIF TEST1]secondValue[/IF] in [IF OK]thirdValue[/IF] end of string.
Спасибо всем!