К сожалению, я сохраняю часть HTML-кода в базе данных, и у меня есть проблема с рендерингом его с переменными.Как визуализировать строку с переменными?
public function myFunction()
{
//...
// example data
$data = array(
'url' => 'example.com',
'value' => 'Go to website!'
);
//Here I get html code from database, let's say it looks like this:
$htmlPart = "<a href='{$data['url']}'>{$data['value']}</a>";
$html = // rendered $htmlPart with variables
return $html;
}
Если я:
echo $htmlPart;
внутри моей функции. Он работает, но мне нужно вернуть rendered $ htmlPart как переменную, но я не могу заставить ее работать.
Я даже пытался сделать это с помощью ob_start:
ob_start();
echo $htmlPart
$html = ob_get_contents();
ob_end_clean();
Но это не работает, вот это то, что я получаю:
<a href="{$data['url']}">
{$data['value']}
</a>
(это визуализируется HTML я в исходном коде)
Любая идея, что я делаю неправильно?
почему вы просто не CONCAT строки с вар? Вы знаете, старомодный способ? – Jeff
Итак, вы * буквально * имеете '{$ data ['url']}', хранящиеся в вашей базе данных, и вы хотите заменить его своим значением? Вам понадобится проанализировать строку (возможно, с помощью регулярного выражения) и заменить значения. –
Если это буквальная строка, как мы объясним: «Если я делаю« echo $ htmlPart »внутри моей функции, она работает». ОП можете подтвердить это? Он действительно выводит 'href =" example.com ", если вы эхо из функции? – BeetleJuice