重複の可能性:
参照 - この記号は PHP で何を意味しますか?
PHP-Nemid
のテスト スクリプトを実行しようとして失敗しました。私はコードを処理しようとしていますが、ファイル「nemid.tpl.php」を使用するレンダリング関数に到達すると、少し迷ってしまいます。スクリプトを実行すると、テンプレート ファイルが文字どおり画面に書き込まれます。つまり、PHP が関連するテンプレート変数を入力するのではなく、文字どおりの PHP コードを書き込むだけです。つまり<?= $some_var_value
、レンダリングされたページのソース コードと同じように表示されます。
私が理解していないもう 1 つのことは<?=
、テンプレート ファイルの の意味です。これは、私がよく知っている PHP 構造ではありません。<?= $some_var
最初は に変更する必要があると思い<? print $some_var
ましたが、この場合でも、リテラル PHP コードがページに出力されます。
ここで何が起こっているのかについて誰かが私に洞察を提供してくれたらありがたいです。
テンプレートファイル(nemid.tpl.php)
<html>
<body>
<form id="signedForm" name="signedForm" method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<div id="applet">
<!-- div ID used for overlay / modal-box -->
<applet name="DANID_DIGITAL_SIGNATUR" tabindex="1" archive="<?= $ServerUrlPrefix ?>/bootapplet/1234567" code="dk.pbs.applet.bootstrap.BootApplet" width="200" height="250" mayscript="mayscript" style="visibility: visible; ">
<param name="ServerUrlPrefix" value="<?= $ServerUrlPrefix ?>">
<param name="ZIP_BASE_URL" value="<?= $ZIP_BASE_URL ?>">
<param name="ZIP_FILE_ALIAS" value="<?= $ZIP_FILE_ALIAS ?>">
<param name="log_level" value="<?= $log_level ?>">
<param name="paramcert" value="<?= $paramcert ?>">
<param name="signproperties" value="<?= $signproperties ?>">
<param name="paramsdigest" value="<?= $paramsdigest ?>">
<param name="signeddigest" value="<?= $signeddigest ?>">
<param name="MAYSCRIPT" value="<?= $MAYSCRIPT ?>">
</applet>
</div>
<input type="hidden" name="signature">
<input type="hidden" name="result">
</form>
<script type="text/javascript">
function onLogonOk(signature) {
document.signedForm.signature.value=signature;
document.signedForm.result.value='ok';
document.signedForm.submit();
}
function onLogonCancel() {
document.signedForm.result.value='cancel';
document.signedForm.submit();
}
function onLogonError(emsg) {
document.signedForm.result.value=emsg;
document.signedForm.submit();
}
</script>
</body>
</html>
レンダリング機能
以下の関数で $vars の内容をテストしたところ、テンプレートに必要な抽出された変数が存在することが確認できました。
function render($template, $vars = array())
{
extract($vars);
ob_start();
include('../templates/' . $template . '.tpl.php');
$content = ob_get_contents();
ob_end_clean();
return $content;
}