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に次を追加することにより、すべてのファイルの先頭に追加されます。.htaccessHTML
AddType application/x-httpd-php .html
php_value auto_prepend_file "prepend.inc"
私のアプリケーションのアーキテクチャのため、 にHTMLエコーされたファイルが必要ですPHP。ただし、ファイルを文字列に変換してエコーを実行しようとすると、上記が実行されない
ため、これは予想よりも大きなタスクであることが証明されています...(実行されていることはわかっています)
私は試しました:PHPob_callbackprepend.incfreadfile_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。
どんな提案でも大歓迎です!