显示来自单独PHP文件的字符串


HTML: Display a string from a separate PHP file

我在网上找遍了,似乎找不到解决我问题的方法。我希望能够从html文件"调用"一个php文件,并显示返回的字符串:

html_ONLY_file.html

...
<h1>GetHeader.php?type=main</h1>
...

GetHeader.php

if($_GET['type'] == 'main')
   print 'Some header to display'; //or echo 'Some...';
exit;

我已经为图像做了这个,img src="image.php?file=file.jpg",其中image.php做一个header(…)和readfile(…)返回,但我不知道如何为简单的文本做到这一点。我不是在寻找DOM或任何太复杂的东西,如果我有必要,我会的。我想知道是否有一个简单的解决办法。它正在生成我丢失的html一侧。

如果你想知道,我这样做是因为我曾经使用了<#virtual include=…>从我的.shtml文件中调用PHP文件。好吧,托管公司决定改变mod_security,现在我不能包含任何php文件(我已经尝试了一切)。包括html文件工作得很好,所以我正在改变网站的这一部分,所以我不必重命名文件,因为该网站是一个小企业,现在在谷歌排名很高的地理区域。如果我将文件名shtml改为php,那么我相信Google的排名会下降(除非你他妈的确定你是100%正确的,否则不要评论这部分)

如果您可以编辑.htaccess文件,您可以在.htaccess文件中添加一行,这将意味着HTML文件将被解析为PHP。

如果您的服务器运行PHP作为apache模块:

AddType application/x-httpd-php .html .htm

如果您的服务器运行PHP作为CGI:

AddHandler application/x-httpd-php .html .htm 

来源:http://www.besthostratings.com/articles/php-in-html-files.html

一旦你添加了你的html_ONLY_file.html可以看起来像:

<h1><?php print "some header"; ?></h1>

它的功能就像一个.php文件。


或者,您可以将所有文件转换为.php并将重定向添加到.htaccess文件中,如下所示:

rewriteRule ^somefile.shtml$ somefile.php [R=301,L]
rewriteRule ^another-file.shtml$ another-file.php [R=301,L]

这有效地告诉您的服务器"每当用户请求somefile.shtml时,就像他们请求somefile.php一样"。R=301最重要的部分关于谷歌排名。这告诉Google(以及任何请求.shtml文件的人),它将永久地移动到新位置somefile.php。这将把所有/几乎所有的排名权力从旧位置转移到新位置。

来源:http://moz.com/learn/seo/redirection