php - 同时启用 PHP 解析器和 Include 语句

标签 php mysql .htaccess include shtml

我有一个现有的 SHTML 页面,其中包含一些菜单的 INCLUDE 语句。这效果很好。到目前为止,我的 .htaccess 文件如下所示:

Options +FollowSymLinks

我的 Include 语句如下所示:

<!--#include virtual="menu_primary.shtml" -->

我有一个新需求,需要向主页添加一些 PHP 代码。 PHP 代码查询 Mysql 数据库以返回单行。如果该行存在于数据库中,我想将其显示在 SHTML 页面上。如果该行不存在,则不执行任何操作。这是 PHP 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$servername = "localhost";
$username = "myusername";
$password = "mypassword";
$dbname = "mydbname";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT notice from notification where page = 'home'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "Message is: " . $row["notice"]. "<br>";
    }
} else {
    echo "";
}
mysqli_close($conn);
?> 
</body>
</html>

当我实现这段 PHP 代码时,页面似乎将大于符号之后的所有内容解释为文本。当我发布该问题时,该论坛上的某人建议更改 .htaccess 文件以包含 PHP 解析器。一阵子。我将 .htaccess 文件更改为如下所示:

Options +FollowSymLinks
<FilesMatch "\.(htm|html|shtm|shtml)$">
    SetHandler application/x-httpd-php5
</FilesMatch>

但是,当我这样做时,PHP 代码工作正常,并且我在 SHTML 页面上显示数据库中的数据,但 #Include 语句不再工作。如何在同一个 SHTML 页面中同时启用 PHP 和 #Include 代码?非常感谢您查看此内容。

最佳答案

在您的 PHP 脚本中,您可以调用 virtual与您的 SSI 配合使用的函数

<?php
virtual('menu_primary.shtml');

有一个非常旧的页面更详细地讨论了这个问题 http://www.zytrax.com/tech/php/php_ssi.htm

关于php - 同时启用 PHP 解析器和 Include 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26780112/

相关文章:

php - 如何使用 Doctrine 2 将日期与当前日期进行比较?

php - 使用 PHP、Zend 将表数据导出到 CSV

php - 字段列表中的列 'name' 不明确

php - 从同一 Controller 文件访问 2 个不同的表

apache - Mod_rewrite 正在将/var/www 添加到生成的 URL

apache - 将非 https 域重定向到 http

php - JQuery .GET 调用/函数

php - 输入命令时出错 => php artition route :list

php - 如何从laravel集合中获取特定的数据片段?

.htaccess - HTACCESS 问:如何将index.php?id=directory/index.html 重定向到一个目录?