簡體   English   中英

如何將 PHP 代碼/文件添加到 HTML(.html) 文件中?

[英]How do I add PHP code/file to HTML(.html) files?

我不能在我的 HTML 頁面中使用 PHP。 例如, index.html 我試過同時使用:

<? contents ?> 

<?php contents ?> 

這些都不起作用。 我的服務器提供 PHP,當我使用.php擴展名時,它可以正常工作。 這是一個問題還是我必須更改php.ini的首選項?

您不能在 .html 文件中運行 PHP,因為除非您告訴它,否則服務器不會將其識別為有效的 PHP 擴展名。 為此,您需要在根 Web 目錄中創建一個 .htaccess 文件並將以下行添加到其中:

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

這將告訴 Apache 將具有 .htm 或 .html 文件擴展名的文件作為 PHP 文件處理。

我認為將 PHP 寫入 .html 文件是令人困惑和反自然的。 為什么要這么做??

無論如何,如果您想要執行 PHP 文件並在地址欄中將它們顯示為 .html,最簡單的解決方案是正常使用 .php,並在您的 .htaccess 中編寫如下規則:

RewriteRule ^([^.]+)\.html$ $1.php [L]

為了在 .html 文件中使用 php,您必須在 HTTP 服務器的配置文件中將它們與您的 PHP 處理器相關聯。 在 Apache 中,它看起來像這樣:

AddHandler application/x-httpd-php .html

您可以像其他人說的那樣修改 .htaccess,但最快的解決方案是將文件擴展名重命名為 .php

添加這一行

AddHandler application/x-httpd-php .html

httpd.conf文件以了解您要執行的操作。 但是請記住,如果您這樣做,那么您的 Web 服務器將非常慢,因為它甚至會解析不包含 php 代碼的靜態代碼。 所以更好的方法是將文件擴展名.phtml而不是.html

為了解析.html文件,您需要在服務器配置中設置適當的處理程序。

對於 Apache httpd 2.X,這是以下行

AddHandler application/x-httpd-php .html

有關特定服務器安裝的信息,請參閱PHP 文檔

默認情況下,您不能在 HTML 頁面中使用 PHP。

為此,請使用以下內容修改您的 .htacccess 文件:

AddType application/x-httpd-php .html

如果您在一個 html 文件中只有 php 代碼,但有多個其他僅包含 html 代碼的文件,您可以將以下內容添加到您的 .htaccess 文件中,這樣它只會將該特定文件作為 php 提供服務。

<Files yourpage.html>
AddType application/x-httpd-php .html 
//you may need to use x-httpd-php5 if you are using php 5 or higher
</Files>

這將使 PHP 可執行文件僅在“yourpage.html”文件上,而不是在所有 html 頁面上,這將防止整個服務器變慢。

至於為什么有人可能想要通過 html 文件提供 php,我使用 google 電子表格中的 IMPORTHTML 函數從必須用 php 解析的外部 url 導入 JSON 數據以清理它並構建一個 html 表。 到目前為止,我還沒有找到將 .php 文件導入谷歌電子表格的任何方法,因此必須將其保存為 .html 文件才能使該功能正常工作。 能夠通過 .html 文件提供 php 是該特定用途所必需的。

使用記事本創建一個空文件並將其命名為 .htaccess ,然后將該文件復制到您的項目目錄中並添加這一行並保存。

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

否則使用.php保存.html文件,因為php可以支持html,並將其保存在computer/var/www/html路徑(linux)

現代修訂版:您現在還需要通過更改 php-fpm 中鮮為人知的“security.limit_extensions”來修復它。 您可能已經知道將 apache 更改為 AddHandler/AddType 的有據可查的機制,我不會在這里討論。

  1. 您必須找出 php-fpm/conf 在您的設置中的位置。 我這樣做了

    # grep -rnw '/etc/' -e 'security.limit_extensions'

  2. 我拿回了這個

    '/etc/php-fpm.d/www.conf:387:;security.limit_extensions = .php .php3 .php4 .php5 .php7'

  3. 轉到此文件,對其進行編輯並確保您意識到它已被注釋掉 EG:將其從';security.limit_extensions = .php .php3 .php4 .php5 .php7' <- 注意:注意";" - 這一行實際上是默認禁用的 - 你不需要所有無意義的擴展,事實上它們可能很危險..將其更改為'security.limit_extensions = .php .htm' <- 注意分號現在已刪除。 然后重啟apache/(或nginx)並重啟php-fpm # service php-fpm restart # service httpd restart

AJAX 也是一種可能性。 實際上,您需要來自 php 頁面的數據。 獲得數據后,您可以在 javascript 中以任何方式格式化並顯示。

var xmlhttp = new XMLHttpRequest();
var url = "risingStars.php";

xmlhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
        getDbData(this.responseText);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();


function getDbData(response) {

//do whatever you want with respone
}

為了結合 HTML 和 PHP,您可以使用 .phtml 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM