2010-02-04 34 views
8

Tôi mới sử dụng PHP. Tôi đã cài đặt XAMPP và có Apache đang chạy. Tôi đã tạo helloworld.php trong các htdocs của XAMPP và nhận PHP để hiển thị trong trình duyệt của tôi. Câu hỏi của tôi là, tại sao tập lệnh PHP của tôi trong tệp HTML của tôi không hiển thị trong trình duyệt của tôi? Ive chưa bao giờ cài đặt PHP. Tôi có nên cài đặt nó không? Nó sẽ xung đột với XAMPP. Mã của tôi là dưới đây. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn trước:Tập lệnh PHP không hoạt động trong tệp HTML

<html> 
<body> 

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

</body> 
</html> 
+0

Bạn có định đăng thêm mã không? –

+0

Đầu ra là gì? –

+1

Tệp đó có nằm trong thư mục "www" trong máy chủ Apache không? (Tôi tin rằng www của nó, có thể là www-root) Và nếu nó là bạn mở nó như: http: //localhost/myFile.php? – Cipi

Trả lời

9

XAMPP đã bao gồm PHP, nhưng trừ khi bạn kết thúc tên kịch bản với .php nó dường như không được xử lý bởi các công cụ PHP.

+0

Có nhưng không bạn cần phải đặt kịch bản trong thư mục www của XAMPP? Hoặc là tôi sai...? – Cipi

+0

@Cipi: Tất nhiên. Nhưng tôi thích cho người hỏi * một số * lợi ích của sự nghi ngờ trừ khi họ chứng minh bằng cách khác. –

+0

Không chỉ không chắc, nó chỉ được cấu hình cho .php (và có thể .php5, tôi quên) ra khỏi hộp. Plain .html (hoặc .htm) sẽ chỉ được Apache phục vụ trực tiếp. – Paolo

5

Mô-đun php cho apache tự đăng ký làm trình xử lý cho loại mime application/x-httpd-php. Và tập tin cấu hình apache \ conf \ thêm \ httpd-xampp.conf chứa các dòng

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

mà kể apache rằng tất cả các file có .php như phần mở rộng tên là là quá trình bằng cách xử lý cho application/x -httpd-php.
Nếu bạn (thực sự) muốn có tệp .html của bạn được xử lý bởi các mô-đun php cũng như bạn phải thêm một cái gì đó tương tự cho phần mở rộng .html. (có các phương pháp khác để cho apache biết rằng bản đồ mở rộng nào có loại mime/xử lý nào. Nhưng FilesMatch/SetHandler là tốt.)
Nếu bạn muốn kích hoạt tính năng này chỉ cho một thư mục bạn có thể sử dụng .htaccess file để thay đổi cấu hình cho thư mục đó (và các thư mục con của nó).

+0

Cảm ơn bạn đã trả lời VolkerK. Tập lệnh hiện đang hoạt động mà tôi đã thay đổi phần mở rộng .html thành .php. Tuy nhiên, nếu tôi bấm vào tập tin, helloworld.php, Windows không biết chương trình đã tạo ra nó (mặc dù tôi có Apache đang chạy). Tôi hơi bối rối, tôi có nên cài đặt PHP cho Windows không? – Anthony

+1

"nếu tôi nhấp vào tệp" - tức là nhấp đúp vào trình khám phá cửa sổ? Apache của bạn và cửa sổ thám hiểm không được kết nối, họ "không biết" của nhau. Apache của bạn xử lý các yêu cầu http, ví dụ: trình duyệt của bạn sẽ gửi. – VolkerK

+0

Ok, cảm ơn VolkerK rất nhiều, tôi hiểu ngay bây giờ. – Anthony

12

Tôi cho rằng bạn đang cố gắng sử dụng tệp php bên trong .html? Hãy thử thêm tập tin .htaccess hoặc thay đổi cấu hình apache với dòng sau:

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

Có, tôi đang cố gắng sử dụng php bên trong tệp .html. Tôi đã làm theo các ví dụ được đưa ra bởi w3schools (xem liên kết dưới đây) và chỉ giả định nó sẽ chỉ đơn giản là làm việc bất cứ nơi nào một khi tôi có Apache chạy: http://www.w3schools.com/php/php_syntax.asp Về tập tin .htaccess hoặc thay đổi cấu hình apache, tôi sẽ phải nghiên cứu điều đó. – Anthony

+0

Sai lầm của tôi, w3schools đã đề cập rằng bạn phải có phần mở rộng .php (không phải.html) nếu không nó sẽ không làm việc – Anthony

4

Bạn nên thêm loại mime tại http conf ví dụ trong apache httpd.conf tại nhập

<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

Ngừng dịch vụ apache, sau đó thêm một thay đổi trong c: \ xampp \ apache \ conf \ httpd.conf trong phần bằng cách thêm ...

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

Khởi động lại ap đau!

Điều này có vẻ như một tính năng 'chất béo' lớn trong bản phân phối xampp hiện tại để giành chiến thắng 32 bit.

+0

Làm thế nào đến tôi không thấy thư mục apache? Cập nhật: Đã tìm thấy nó. Httpd.conf nằm trong thư mục etc của tôi. Nó sẽ không cho phép bạn chỉnh sửa trực tiếp mặc dù vậy bạn sẽ phải 'sudo su' trước khi bạn chỉnh sửa. Cảm ơn btw! –

0

Quá nhiều quá mức cần thiết. Tất cả những lời đề nghị này dẫn tôi xuống con đường sai lầm như 5 giờ. JK, nhưng tôi đã đọc rất nhiều mục tìm kiếm của google tất cả đưa ra câu trả lời sai và mỗi đề xuất chỉ là thêm nhiều câu trả lời sai.

Câu trả lời là thực tế quá đơn giản bạn muốn đập đầu: Chỉ cần thay đổi đuôi tệp từ ".html" thành ".php" !!! Hãy nhớ rằng bạn có thể xây dựng một trang web hoàn toàn bằng PHP và tất cả JavaScript và các công cụ được xây dựng như JavaScript, JQuery, bootstrap, v.v. sẽ hoạt động.

Đây là một ví dụ đơn giản chứng minh:

<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> 

Chú ý rằng tôi đang sử dụng html tiêu chuẩn của bạn, mặc dù nó không hiển thị các thẻ HTML của tôi (tôi tin tưởng nó ở đó), nội dung trang web và có mã php được chèn vào bên trong. Tất nhiên kết quả là 15 và phần tử html h4 cũng hiển thị chính xác. Thay đổi phần mở rộng trở lại "html" và bạn sẽ chỉ nhận được phần tử h4 và bạn sẽ thấy rằng mã php của bạn đã được nhận xét bằng cách sử dụng multi-comment cho html.

Tôi quên thêm rằng tính năng này cũng hoạt động với Xampp.

Các vấn đề liên quan