Bagaimana cara menambahkan kode / file PHP ke file HTML (.html)?


97

Saya tidak dapat menggunakan PHP di halaman HTML saya. Misalnya index.html,. Saya sudah mencoba menggunakan keduanya:

<? contents ?> 

dan

<?php contents ?> 

Tak satu pun dari pekerjaan ini. Server saya menawarkan PHP, dan ketika saya menggunakan .phpekstensi, itu berfungsi dengan baik. Apakah ini masalah atau apakah saya harus mengubah preferensi php.ini?


2
Anda harus mengubah server Anda (saya berasumsi apache) untuk menyajikan file html sebagai php, tetapi mengapa Anda ingin ekstensi menjadi html daripada php?
Pil Ledakan


@ExplosionPills Saya telah melakukannya menggunakan IIS v7! dan itu mungkin!
dibatalkan

@Death Saya tidak bermaksud mengatakan bahwa itu hanya dapat dilakukan dengan apache, saya hanya berasumsi dia menggunakan apache.
Pil Ledakan

1
Ide yang mengerikan. Gunakan pengalihan untuk menyimpan SEO Anda. Gunakan .html untuk HTML dan .php untuk PHP.
Teknologi Alien

Jawaban:


142

Anda tidak dapat menjalankan PHP dalam file .html karena server tidak mengenalinya sebagai ekstensi PHP yang valid kecuali Anda menyuruhnya. Untuk melakukan ini, Anda perlu membuat file .htaccess di direktori web root Anda dan menambahkan baris ini ke dalamnya:

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

Ini akan memberi tahu Apache untuk memproses file dengan ekstensi file .htm atau .html sebagai file PHP.


15
Meskipun ini benar, saya pikir pertanyaan yang lebih penting adalah mengapa melakukan ini? Selain itu, dia harus memperbarui konfigurasi server daripada menggunakan .htaccessjika itu adalah opsi.
Pil Ledakan

11
Saya telah melakukan ini pada banyak kesempatan untuk menyembunyikan fakta bahwa saya menggunakan PHP (selain hal-hal lain)
nickb

3
@ nickb - keamanan melalui ketidakjelasan?
Nathan Long

2
@NathanLong w3.org/TR/cooluris Secara khusus, "Jauhkan bit implementasi khusus dan potongan seperti php dan asp dari URI Anda, Anda mungkin ingin teknologi perubahan nanti." di bagian 4.5.
Eric Finn

4
@EricFinn - itu pedoman yang bagus. Tetapi memiliki .htmlfile proses server sebagai PHP bahkan tidak diperlukan, atau membantu, dalam mengikutinya. Anda ingin pengguna berkunjung example.com/foo. Anda dapat menggunakan URL tersebut untuk menyajikan konten PHP apa pun nama file di server Anda. Jika pengguna sudah foo.htmlmem - bookmark, Anda tetap dapat melayani foo.phptanpa mengganti nama file.
Nathan Long

20

Saya pikir menulis PHP menjadi file .html membingungkan dan anti-alami. Kenapa kamu ingin melakukan itu??

Bagaimanapun, jika yang Anda inginkan adalah mengeksekusi file PHP dan menampilkannya sebagai .html di bilah alamat, solusi termudah adalah menggunakan .php seperti biasa, dan tulis aturan di .htaccess Anda seperti ini:

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

Bagaimana jika saya menggunakan PHP + HTML? format apa yang harus saya gunakan? Saya cukup bingung. Halaman saya memiliki kode yang sangat pendek berdasarkan PHP dan ada banyak kode dalam HTML. Jadi yang akan saya lakukan adalah membuat file HTML. Apakah ini kebiasaan buruk?
Hoon

3
Formatnya harus .php, karena file .html hanya berisi kode HTML.
David Morales

15

Untuk menggunakan php dalam file .html, Anda harus mengasosiasikannya dengan prosesor PHP Anda di file konfigurasi server HTTP Anda. Di Apache, itu terlihat seperti ini:

AddHandler application/x-httpd-php .html

maukah Anda mengomentari perbedaan antara AddHandlerdan AddType? Terima kasih.
PatrickT

1
@PatrickT Cara termudah untuk membandingkan adalah bahwa AddHandler adalah pemetaan "masukan" - ini memetakan ekstensi file yang masuk ke penangan. AddType mengubah header tipe MIME keluaran. Lihat catatan di sini: httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype
Chris Trahey

13

Anda dapat memodifikasi .htaccess seperti yang dikatakan orang lain, tetapi solusi tercepat adalah mengganti nama ekstensi file menjadi .php


Anda juga dapat mencoba .phtml
Floggedhorse

9

Tambahkan baris ini

AddHandler application/x-httpd-php .html

untuk httpd.confmengajukan apa yang ingin Anda lakukan. Namun perlu diingat, jika Anda melakukan ini maka web server Anda akan sangat lambat, karena akan mengurai bahkan kode statis yang tidak akan berisi kode php. Jadi cara yang lebih baik adalah membuat ekstensi file .phtmldaripada hanya .html.


5
Ingatlah untuk tidak menuliskan seluruh jawaban Anda dengan huruf tebal.
David Morales

7

Agar .htmlfile juga diurai, Anda perlu menyetel penangan yang sesuai di konfigurasi server Anda.

Untuk Apache httpd 2.X ini adalah baris berikut

AddHandler application/x-httpd-php .html

Lihat dokumen PHP untuk informasi tentang instalasi server spesifik Anda.


6

Secara default, Anda tidak dapat menggunakan PHP di halaman HTML.

Untuk melakukan itu, ubah file .htacccess Anda dengan yang berikut ini:

AddType application/x-httpd-php .html

4

Jika Anda hanya memiliki kode php dalam satu file html tetapi memiliki beberapa file lain yang hanya berisi kode html, Anda dapat menambahkan berikut ini ke file .htaccess Anda sehingga hanya akan menyajikan file tersebut sebagai 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>

Ini akan membuat PHP HANYA dapat dieksekusi pada file "yourpage.html" dan bukan pada semua halaman html Anda yang akan mencegah perlambatan di seluruh server Anda.

Mengenai mengapa seseorang mungkin ingin melayani php melalui file html, saya menggunakan fungsi IMPORTHTML di google spreadsheet untuk mengimpor data JSON dari url eksternal yang harus diurai dengan php untuk membersihkannya dan membuat tabel html. Sejauh ini saya belum menemukan cara untuk mengimpor file .php ke google spreadsheet sehingga harus disimpan sebagai file .html agar fungsinya berfungsi. Mampu melayani php melalui file .html diperlukan untuk penggunaan khusus itu.


Sangat praktis.
Kuantme

4

Buat file kosong menggunakan notepad dan beri nama .htaccess, Kemudian salin file itu ke direktori proyek Anda dan tambahkan baris ini dan simpan.

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

Jika tidak simpan file .html menggunakan .php karena php dapat mendukung html, dan menyimpannya di path komputer / var / www / html (linux)


1
Terima kasih telah mempertimbangkan mereka yang bahkan tidak tahu cara membuat file .htaccess.
Kuantme

0

AJAX juga kemungkinan. Secara efektif Anda menginginkan data dari halaman php. Setelah Anda memiliki data, Anda dapat memformatnya dalam javascript dan tampilan.

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
}

0

REVISI MODERN: Anda sekarang juga perlu memperbaikinya dengan mengubah '' security.limit_extensions 'yang sedikit diketahui di php-fpm dengan melakukan ini. Anda mungkin sudah mengetahui mekanisme terdokumentasi dengan baik untuk mengubah apache menjadi AddHandler / AddType Saya tidak akan membahasnya di sini.

  1. ANDA HARUS mencari tahu di mana php-fpm / conf berada di pengaturan Anda. Saya melakukannya dengan melakukan ini

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

  2. Saya mendapatkan ini kembali

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

  3. buka file ini, edit dan PASTIKAN ANDA MENYADARI INI DIKomentari EG: ubah dari ';security.limit_extensions = .php .php3 .php4 .php5 .php7'<- NB: perhatikan ";"- baris ini sebenarnya DINONAKTIFKAN secara default - dan Anda tidak memerlukan semua ekstensi yang tidak masuk akal, sebenarnya ekstensi itu mungkin berbahaya .. ubah ke 'security.limit_extensions = .php .htm'<- perhatikan titik koma sekarang dihapus. kemudian restart apache / (atau nginx) dan restart php-fpm# service php-fpm restart # service httpd restart


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.