以前は $obj->html をエコーしていましたが、現在のプロジェクトでは、HTML のスラッグを調べて、{whatever}
これらを他のコンテンツに置き換える必要があります。
2 つの問題があります。1 つ目は、このコードが思ったよりも遅いことです。
class Foo {
function draw_content() {
$slug = "/(?<=\{).*(?=\})/";
if (preg_match($slug, $this->html, $matches)) {
foreach ($matches as $match) {
if (method_exists($this,$match)) {
$replacement = $this->$match();
$this->html = preg_replace("/\{$match\}/", $replacement, $this->html);
}
}
}
return $this->html;
} // fn
function new_releases() {
echo "new release book covers";
} // fn
} // class
スラグの内容を取得するより良い方法はありますか? 正規表現がこれを遅くしていると思いますか?
2 番目の問題は、私にとって見知らぬ人です。この $obj->html を考えると:
<p class="headline">New Releases</p>
<p>xxx{new_releases}xxxx</p>
$obj->draw_content() の処理された出力は、<?=$obj->draw_content()?>
new release book covers<p class="headline">New Releases</p>
<p>xxxxxxx</p>
new_releases()
出力が先頭に追加されるのはなぜですか? ナメクジはなくなりましたが、交換品はその場所にありません!