我可以在SHTML文件中包含PHP文件并将结果存储在SHTML变量中吗?

时间:2011-05-13 11:17:31

标签: php variables server-side-includes ssi shtml

我想在SHTML文件中包含一个PHP文件,并将结果存储在SHTML变量中,并根据结果包含不同的内容。

例:
假设PHP脚本将以纯文本形式回显0/1(取决于时间或类似的东西)。然后在SHTML中,我想将该PHP文件的输出存储在SHTML变量中。然后,如果存储在该变量中的值为1,则包含fileA.html,否则包括fileB.html。

4 个答案:

答案 0 :(得分:0)

听起来不可能。 SHTML使用不同的方法来解析代码,因此我认为PHP不会在页面上运行以将值返回给SHTML。你为什么这样做,为什么不直接使用PHP?

答案 1 :(得分:0)

假设您有一个template.shtml文件,其中包含文本@@PHPVARHERE@@

用户致电script.php?var=1。该脚本不会加载template.shtml文件(file_get_contents)的内容,而是str_replace@@PHPVARHERE@@替换为$_REQUEST['var'](在这种情况下为1

然后脚本将所有这些输出到file1.shtml。如果文件已经存在,请使用现有文件或覆盖它 - 在这种情况下恰好是正确的。

因此脚本在运行时动态地动态创建相关的shtml文件。只需添加Header('Relocate: file1.shtml');,脚本就会将浏览器重定向到生成的文件。

这是我能理解的最近的。

答案 2 :(得分:0)

答案似乎是 NO

注意: 它应该只使用PHP和服务器指令实现,以将.shtml文件视为PHP。

答案 3 :(得分:0)

在.shtml页面上执行PHP的方法是修改.htaccess文件。此文件可能是隐藏的,因此根据您的FTP程序,您可能需要修改某些设置才能看到它。然后你只需要为.shtml添加这一行:

AddType application/x-httpd-php .shtml

如果您只打算在一个页面上包含PHP,最好以这种方式设置:

<Files yourpage.shtml>
AddType application/x-httpd-php .shtml
</Files>

此代码仅在yourpage.shtml文件中生成PHP可执行文件,而不是在所有shtml页面上生成。