1

以前は $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()出力が先頭に追加されるのはなぜですか? ナメクジはなくなりましたが、交換品はその場所にありません!

4

1 に答える 1