How to include PHP file in SHTML pages?

2019-02-25 01:26发布

I have a shtml file index.shtml in which I want to include a PHP file which performs some programing and returns HTML data. I am trying to include my PHP file but I don't know how to do that, I tried following but nothing is working,

Following line is just printing an error, "[an error occurred while processing this directive] ":

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

This line is displaying some junk characters:

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

This line is doing nothing and displaying the command as is in the .shtml page

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

Thanks

4条回答
来,给爷笑一个
2楼-- · 2019-02-25 01:53

I could be wrong, but given the error you are getting, the problem may not in the include statement but an error in the php file to be included that is causing the problem.

查看更多
走好不送
3楼-- · 2019-02-25 02:06

I don't think you can in Apache (I've no idea about other web servers). The Apache documentation says that 'include_virtual' lets you include the results of a CGI program; but PHP isn't a CGI application in Apache's terms: it's handled by a different module, in a different way.

Colin

查看更多
时光不老,我们不散
4楼-- · 2019-02-25 02:09

For the last to work simply rename your .shtml to .php but note that that will stop any shtml in there from working. But that shouldn;t be a problem if you also rewrite that to php.

Edit from your comment:
If you run apache you could add the following in your .htacces and then you could rename the file to .php

 redirect permanent filename.shtml filename.php

That will redirect people visiting example.com/filename.shtml to example.com/filename.php

查看更多
成全新的幸福
5楼-- · 2019-02-25 02:11

If there is no particular reason that you are using .shtml aside from what you mentioned regarding traffic, you can change its processing in your .htaccess file:

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

Or you can specify that file in particular:

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

This will tell the server to parse the .shtml like it was a .php file, and therefore any PHP commands should be processed, such as your include statement. No need to change the file extension.

查看更多
登录 后发表回答