@viktorulyushev

Битрикс.Замена куска кода через str_replace?

В данном куске кода
<label><?=$arQuestion["CAPTION"]?>
<?if ($arQuestion["REQUIRED"] == "Y"):?><?=$arResult["REQUIRED_SIGN"];?><?endif;?></label>

<?=$arQuestion["HTML_CODE"]?>

Формируется этот код
<label>Как к вам обращаться?     <font color='red'><span class='form-required starrequired'>*</span></font></label>

<input type="text"  class="inputtext"  name="form_text_4" value="" size="0" />

Битрикс сам их как то формирует,поиск по всему проекту не выдал ничего,только в css файлах есть упоминание о данных классах,в общем нужно через str_replace заменить font на span и size="0" на size="1"
В php не разбираюсь,поэтому жду помощи
  • Вопрос задан
  • 1060 просмотров
Решения вопроса 1
fibit
@fibit
full-stack developer
Да, можно, например вот так:
<?
	ob_start();
?>
<label><?=$arQuestion["CAPTION"]?><?if ($arQuestion["REQUIRED"] == "Y"):?><?=$arResult["REQUIRED_SIGN"];?><?endif;?></label>
<?
	$label = ob_get_contents();
	ob_end_clean();
?>

Далее применяйте функцию str_replace к переменной $label и выводите на экран.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@viktorulyushev Автор вопроса
<?
  ob_start();
?>
 <label><?=$arQuestion["CAPTION"]?>
		<?if ($arQuestion["REQUIRED"] == "Y"):?><?=$arResult["REQUIRED_SIGN"];?><?endif;?>
</label>
<?
  $label = ob_get_contents();
  ob_end_clean();
?>
<?
echo $str = str_replace("font color='red'", "span", $label);
echo $str = str_replace("/font", "/span", $str);
?>


Выводит так,первый label есть /font во втором все нормально
<label>Как к вам обращаться?		<span><span class='form-required starrequired'>*</span></font></label>
 <label>Как к вам обращаться?		<span><span class='form-required starrequired'>*</span></span></label>

Нужно так
<label>Как к вам обращаться?<span><span class='form-required starrequired'>*</span></span></label>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы