HTML
のデータベース情報を使用
して人口統計に取り組んでいますPHP
。ファイルにはHTML
パターン ({{$pattern}}) があり、HTML
ファイル内にある場合、一致するPHP
変数に置き換えられます。HTML
ファイルの例は次のとおりです。
<div>{{$apples}}</div>
必要に応じてこのHTML
ファイルに入力するために、次のPHP
スクリプトを作成しました ( prepend.inc
):
function ob_callback($buffer){
global $data;
$data['apples'] = CONSTANT; //global definition defined elsewhere
$buffer = preg_replace_callback(
'/{{\$([a-zA-Z0-9_]+)}}/',
function($matches){
global $data;
return (isset($data[$matches[1]])?$data[$matches[1]]:"");
},
$buffer);
return $buffer;
}
ob_start("ob_callback");
このスクリプトは、ディレクトリ内のHTML
に次を追加することにより、すべてのファイルの先頭に追加されます。.htaccess
HTML
AddType application/x-httpd-php .html
php_value auto_prepend_file "prepend.inc"
私のアプリケーションのアーキテクチャのため、 にHTML
エコーされたファイルが必要ですPHP
。ただし、ファイルを文字列に変換してエコーを実行しようとすると、上記が実行されない
ため、これは予想よりも大きなタスクであることが証明されています...(実行されていることはわかっています)
私は試しました:PHP
ob_callback
prepend.inc
fread
file_get_content
const CONSTANT = 'oranges';
ob_start();
require 'theHTMLfile.html';
$out = ob_get_contents();
ob_end_clean();
echo $out;
ただし、これらのいずれも prepend.inc の ob_start コールバックに到達していないようで、パターンが置き換えられています...
1 つの解決策は完全な URL ( require 'http://www.example.com/theHTMLfile.html';
) を使用することですが、global への参照が壊れてしまうため使用できません。などのデータを取得するために必要な変数HTML
。
どんな提案でも大歓迎です!