2

だから私が持っているのは、いくつかのコンテンツ、PHP 関数 load_users、さらにいくつかのコンテンツを持つデータベースに格納されたページです。私がする必要があるのは、データベースから取得した文字列で PHP:FunctionName(ページごとに異なる) を検索し、それを関数の戻り値に置き換えることです。

私が持っているデータベースで言ってみましょう

    <h1>Online Users</h1>
    PHP:LoadOnline
    <p>Blah blah blah blah blah</p>

その PHP: を検索して、その横にある関数名を取得し、それを実行して結果を表示できるようにしたいと考えています。これは可能ですか、それとも何か他のことを理解する必要がありますか?

4

1 に答える 1

2

preg_replace_callbackを使用できます。

function printSomeText()
    {
    echo 'text';
    }

$template = "
 <h1>Online Users</h1>
    PHP:printSomeText sdf
    <p>Blah blah blah blah blah</p>";

echo preg_replace_callback(
    '/PHP\:([^\s]*)/', function ($matches)
        {
        $function = $matches[1];
        ob_start();
        $function();
        $return = ob_get_contents();
        ob_end_clean();
        return $return;
        }, $template
);

この方法は十分に「怠惰」です。

于 2013-10-01T03:17:40.783 に答える