不幸にも私はデータベースに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;
。それは動作しますが、レンダリングされた$ htmlPartを変数として返す必要がありますが、動作させることができません。
は私も のob_start使用してそれを実行しようとしました:私は<a href="{$data['url']}">
{$data['value']}
</a>
(これはレンダリングされたHTMLを取得:
ob_start();
echo $htmlPart
$html = ob_get_contents();
ob_end_clean();
をしかし、それは動作しません、ここではそれは私が得るものですソースコード内)
私は間違っていますか?
あなただけのVARで文字列をCONCATない理由? ..旧式の方法、あなたは知っていますか? – Jeff
だから、文字通りあなたのデータベースに '{$ data ['url']}'を保存しておき、その値で置き換えたいのですか?文字列を解析し(おそらく正規表現を使用して)、値を置き換える必要があります。 –
リテラル文字列の場合、私はどのように説明しますか: "私の関数内に' echo $ htmlPart'を実行すると動作します。 OPでこれを確認できますか?関数内からエコーすると、実際には 'href =" example.com "'を出力しますか? – BeetleJuice