2010-02-04 25 views
8

我是PHP新手。我安裝了XAMPP並運行Apache。我在XAMPP的htdocs中創建了helloworld.php,並讓PHP在我的瀏覽器中顯示。我的問題是,爲什麼我的HTML文件中的PHP腳本不顯示在瀏覽器中?我從未自行安裝PHP。我是否也應該安裝它?它會與XAMPP衝突嗎?我的代碼如下。任何援助將不勝感激。在此先感謝:PHP腳本不能在HTML文件中工作

<html> 
<body> 

<?php 
echo "Hello PHP World"; 
?> 

</body> 
</html> 
+0

您是否打算髮布更多的代碼? – 2010-02-04 09:54:14

+0

輸出是什麼? – 2010-02-04 09:56:14

+1

該文件是否在Apache服務器的「www」目錄中? (我相信它的www,可能是www-root)如果是你打開它:http://localhost/myFile.php? – Cipi 2010-02-04 09:57:13

回答

9

XAMPP已經包括PHP,但除非你有.php結束腳本的名稱是不可能由PHP引擎處理。

+0

是的,但你不需要把腳本放在XAMPP的www文件夾中?或者我錯了...? – Cipi 2010-02-04 09:59:51

+0

@Cipi:當然。但我更喜歡給予提問者一些好處,除非他們證明了這一點。 – 2010-02-04 10:03:01

+0

不僅僅是不太可能,它只是配置爲.php(也許.php5,我忘了)。 Plain .html(或.htm)將直接由Apache提供。 – Paolo 2010-02-04 10:21:18

5

apache的php模塊自己註冊爲mime類型application/x-httpd-php的處理程序。和配置文件的Apache \的conf \額外\的httpd-xampp.conf包含線

<FilesMatch "\.php$"> 
    SetHandler application/x-httpd-php 
</FilesMatch> 

告訴apache的具有.PHP爲擴展名的所有文件都被處理程序爲應用程序/ X -httpd-php
如果你(真的)想要你的.html文件由php模塊處理,那麼你必須爲.html擴展添加類似的東西。 (還有其他方法可以告訴apache哪個擴展名映射到哪個mime類型/處理程序,但是FilesMatch/SetHandler沒問題。)
如果您希望只爲一個目錄啓用此「功能」,您可以使用.htaccess file來更改該目錄(及其子目錄)的配置。

+0

感謝您的回覆VolkerK。 該腳本現在正在工作,我已將.html擴展名更改爲.php。但是,如果我點擊文件helloworld.php,Windows不知道創建它的程序(即使我運行Apache)。我有點困惑,我是否也應該安裝PHP for Windows? – Anthony 2010-02-04 17:31:18

+1

「如果我點擊文件」 - 即雙擊Windows資源管理器?你的Apache和Windows資源管理器沒有連接,他們「不知道」彼此。你的Apache處理http請求,例如您的瀏覽器發送。 – VolkerK 2010-02-04 18:47:56

+0

好的,非常感謝VolkerK,我現在明白了。 – Anthony 2010-02-05 01:56:33

12

我假設你正在嘗試使用PHP裏面的.html文件? 嘗試增加.htaccess文件或修改Apache的配置與以下行:

 
AddHandler application/x-httpd-php .html 
+0

是的我想在一個.html文件中使用php。我正在關注w3schools給出的例子(請參閱下面的鏈接),並且假設只要運行Apache就可以在任何地方工作:http://www.w3schools.com/php/php_syntax.asp 關於.htaccess文件或改變Apache配置,我將不得不研究。 – Anthony 2010-02-04 17:14:50

+0

我的錯誤,w3schools確實提到你必須有.php擴展名(不是。HTML)否則它不會工作 – Anthony 2010-02-05 08:30:01

4

你應該在HTTP的conf 在Apache的httpd.conf中,在進入 添加MIME類型,例如

<IfModule mime_module> 
    # 
    # TypesConfig points to the file containing the list of mappings from 
    # filename extension to MIME-type. 
    # 
    TypesConfig "conf/mime.types" 
    ....... 
    AddType application/x-httpd-php .html .htm 
    AddType text/html .shtml 

    AddOutputFilter INCLUDES .shtml 
</IfModule> 
6

停止通過添加\ XAMPP的\ apache的\的conf \ httpd.conf文件中的部分...

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

重啓AP:apache服務,然後加在C一個變化疼痛!

這看起來像是32位win的當前xampp發行版中的一大特色。

+0

我怎麼沒有看到Apache文件夾? 更新:找到它。 httpd.conf位於我的etc文件夾中。它不會讓你直接編輯,所以你必須在編輯之前先編輯sudo su。 謝謝btw! – 2013-05-12 00:22:34

0

太多矯枉過正。所有這些建議都讓我走錯了5個小時的路。 JK,但我確實閱讀了很多谷歌搜索項目,都給出了錯誤的答案,每個建議都只是增加了更多錯誤的答案。

答案其實很簡單,你會想要轟動一下:只需將文件擴展名從「.html」更改爲「.php」!請記住,您可以完全使用PHP構建一個網頁,並且所有JavaScript和由JavaScript構建的東西,比如JQuery,bootstrap等都可以使用。

這裏是證明一個簡單的例子:

<head> 

    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <title>Blank Web Page</title> 

    <link rel="stylesheet" type="text/css" href="css/css.css"> 

</head> 

<body> 

    <?php 

    $son = 5; 
    $nos =10; 

    echo $son + $nos; 

    ?> 

    <h4>test to see if this html element can be output too!</h4> 

    <script type="text/javascript" src="js/js.js"></script> 

</body> 

請注意,我用你的標準的HTML,即使它不顯示我的HTML標籤(相信我它在那裏),網頁的東西,並在裏面插入php代碼。當然結果是15,html元素h4也能正確渲染。將擴展名更改回「html」,您將只獲得h4元素,並且您會發現您的php代碼已經使用html的多註釋進行了註釋。

我忘了補充一點,這也適用於Xampp。