3

我有一个 shtml 文件 index.shtml,我想在其中包含一个 PHP 文件,该文件执行一些编程并返回 HTML 数据。我正在尝试包含我的 PHP 文件,但我不知道该怎么做,我尝试了以下但没有任何效果,

以下行只是打印错误,“ [处理此指令时发生错误] ”:

<!--#include file="/SSI/test.php"--> 

此行显示一些垃圾字符:

<!--#include virtual="/SSI/test.php"--> 

此行不执行任何操作并在 .shtml 页面中显示命令

<?PHP 
    include("/SSI/test.php");
?>

谢谢

4

4 回答 4

8

如果除了您提到的关于流量的内容之外,您使用 .shtml 没有特别的原因,您可以在 .htaccess 文件中更改其处理:

<Files *.shtml>
ForceType application/x-httpd-php
</Files>

或者您可以特别指定该文件:

<Files filename.shtml>
ForceType application/x-httpd-php
</Files>

这将告诉服务器解析 .shtml 就像它是一个 .php 文件一样,因此应该处理任何 PHP 命令,例如您的 include 语句。无需更改文件扩展名。

于 2009-05-08T18:38:11.667 回答
1

我可能是错的,但是鉴于您遇到的错误,问题可能不在包含语句中,而是在要包含的 php 文件中的错误导致了问题。

于 2011-03-16T03:41:53.450 回答
0

最后一个工作只需将您的 .shtml 重命名为 .php 但请注意,这将阻止其中的任何 shtml 工作。但这不应该是一个问题,如果你也将它重写为 php。

从您的评论中编辑:
如果您运行 apache,您可以在 .htacces 中添加以下内容,然后您可以将文件重命名为 .php

 redirect permanent filename.shtml filename.php

这会将访问 example.com/filename.shtml 的人重定向到 example.com/filename.php

于 2009-05-08T10:54:31.743 回答
0

我认为您不能在 Apache 中使用(我不知道其他 Web 服务器)。Apache 文档说“include_virtual”允许您包含 CGI 程序的结果;但 PHP 不是 Apache 术语中的 CGI 应用程序:它由不同的模块以不同的方式处理。

科林

于 2009-05-08T11:43:06.393 回答