可能重复:
参考 - 这个符号在 PHP 中是什么意思?
我尝试为PHP-Nemid运行测试脚本有些不成功。我正在尝试编写代码,但是当它到达使用文件“nemid.tpl.php”的渲染函数时,我有点迷失了。当我运行脚本时,模板文件实际上是写到屏幕上的,从某种意义上说,不是 PHP 填充相关的模板变量,而是只编写文字 PHP 代码。换句话说<?= $some_var_value
,就像在渲染页面的源代码中一样。
我不明白的另一件事是<?=
模板文件中的含义是什么。这不是我熟悉的 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;
}