0

私は独自の CMS を開発しており、サーバー上にある既存の PHP スクリプトを動的に含める機能を実装したいと考えています。

HTML や JS コードを含むページ コンテンツを含む $page_content という変数があり、正規表現によって認識されるテキストも含まれます。認識されたテキストは処理され、必要な動的に作成されたデータに置き換えられます。また、その正規表現メカニズムを使用して新しいスクリプトを含めることをトリガーしたいのですが、正規表現の認識が関数によって解決され、関数内で「含める」または「要求する」とスクリプトが関数変数によって制限されるように見えるため、ここに問題があります。スコープなので、必要な動作を取得できません。

物事を思い通りに機能させるにはどうすればよいですか。つまり、これらの動的に組み込まれたスクリプトをより有効に活用できるということです。

よろしくお願いします

4

2 に答える 2

1

危険なことをしているように聞こえます。HTML/JS (CMS のユーザーによって挿入されると思われます) に正規表現に一致する文字列が含まれている場合を考えましたか?

スコープの質問については、関数compact()は現在のスコープ変数を配列にパックして、extract()それらを再度設定できます。ただし、これらの関数を使用するときは、非常に慎重に行ってください。実際に必要な他の変数を予期せず上書きする可能性があります。

function test($vars) {
    extract($vars);
    # The array might have contained the key 'vars', in which case
    # your function argument is now overwritten.
}
于 2009-06-21T11:37:32.640 に答える
0

php 抽出関数を見てください。変数の配列を必要なスコープにロードできます。

http://nz2.php.net/manual/en/function.extract.php

ob_start();
extract($my_variables_array);
include $phpfile;
$output = ob_get_clean();
于 2009-06-21T11:32:42.493 に答える