PHP内部HTML问题


PHP inside HTML issue

我在显示信息站点的PHP文件方面遇到问题。我在本地主机上工作,我的.htaccess文件被正确配置为显示.php文件,就像php文件在html文件上工作一样。

但是,当我试图制作一个切换变量,根据日期在不同页面之间切换时。。。

<?php
switch(date('l')) {
   case 'Sunday': $page = 'sunday.html'; break;
   case 'Monday': $page = 'monday.html'; break;
   case 'Tuesday': $page = 'tuesday.html'; break;
   case 'Wednesday': $page = 'wednesday.html'; break;
   case 'Thursday': $page = 'thursday.html'; break;
   case 'Friday': $page = 'friday.html'; break;
   case 'Saturday': $page = 'saturday.html'; break;
}
echo file_get_contents($page);
?>

那么.html中的php include代码将不起作用。与php echo相同,它不会显示。我哪里可能出错了?我的index.html(onair.php工作的地方,显示在index.html上)链接到/programs/schedule.html,然后链接到给定日期的相应页面。在那里,与index.html中相同的PHP代码不会显示。。。它只是在谷歌浏览器中进行了简单的评论。

如有任何帮助,我们将不胜感激。干杯

您需要include页面。file_get_contentsecho都不会执行PHP脚本。

<?php
switch(date('l')) {
   case 'Sunday': $page = 'sunday.html'; break;
   case 'Monday': $page = 'monday.html'; break;
   case 'Tuesday': $page = 'tuesday.html'; break;
   case 'Wednesday': $page = 'wednesday.html'; break;
   case 'Thursday': $page = 'thursday.html'; break;
   case 'Friday': $page = 'friday.html'; break;
   case 'Saturday': $page = 'saturday.html'; break;
}
include $page;
?>

当然,你也可以让它变得更简单:

<?php
include strtolower(date('l')) . '.html';
?>

PHP不能在HTML文件中执行,除非使用eval()。您可以将文件重命名为.php而不是.html(在我看来,这是更好的选择),也可以通过在.htaccess:中添加以下内容将html设置为以php文件运行

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

路径可能不相同,请使用以下代码进行检查:

readfile(realpath(dirname(__FILE__).DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$page);

如果你想被解读,也可以包括在内。