Nie mogę używać PHP na moich stronach HTML. Na przykład index.html
. Próbowałem użyć obu:
<? contents ?>
i
<?php contents ?>
Żadne z tych nie działa. Mój serwer oferuje PHP, a kiedy używam .php
rozszerzenia, działa poprawnie. Czy to problem, czy muszę zmienić preferencje php.ini
?
Odpowiedzi:
Nie możesz uruchamiać PHP w plikach .html, ponieważ serwer nie rozpoznaje tego jako prawidłowego rozszerzenia PHP, chyba że mu to powiesz. Aby to zrobić, musisz utworzyć plik .htaccess w swoim głównym katalogu WWW i dodać do niego następujący wiersz:
Dzięki temu Apache będzie przetwarzał pliki z rozszerzeniem .htm lub .html jako pliki PHP.
źródło
.htaccess
jeśli taka jest opcja..html
pliki jako PHP nie jest nawet konieczne ani pomocne w jego przestrzeganiu. Chcesz, aby użytkownicy odwiedzaliexample.com/foo
. Możesz użyć tego adresu URL do obsługi treści PHP niezależnie od nazw plików na serwerze. Jeśli użytkownicy jużfoo.html
dodali zakładki, nadal możesz obsługiwaćfoo.php
bez zmiany nazwy pliku.Myślę, że pisanie PHP do pliku .html jest mylące i antynaturalne. Dlaczego chcesz to zrobić??
W każdym razie, jeśli chcesz uruchamiać pliki PHP i wyświetlać je jako .html w pasku adresu, najłatwiejszym rozwiązaniem byłoby użycie .php normalnie i napisanie reguły w swoim .htaccess w ten sposób:
źródło
Aby używać php w plikach .html, musisz powiązać je z procesorem PHP w pliku konfiguracyjnym serwera HTTP. W Apache wygląda to tak:
źródło
AddHandler
iAddType
? Dzięki.Możesz modyfikować .htaccess tak, jak mówili inni, ale najszybszym rozwiązaniem jest zmiana rozszerzenia pliku na .php
źródło
Dodaj tę linię
aby
httpd.conf
złożyć wniosek o to, co chcesz robić. Ale pamiętaj, jeśli to zrobisz, twój serwer WWW będzie bardzo wolny, ponieważ będzie przetwarzał nawet kod statyczny, który nie będzie zawierał kodu php. Więc lepszym sposobem będzie rozszerzenie pliku.phtml
zamiast po prostu.html
.źródło
Aby mieć również
.html
parsowane pliki, musisz ustawić odpowiednią obsługę w konfiguracji serwera.W przypadku serwera Apache httpd 2.X jest to następujący wiersz
Zobacz dokumentację PHP, aby uzyskać informacje na temat instalacji konkretnego serwera.
źródło
Domyślnie nie możesz używać PHP na stronach HTML.
Aby to zrobić, zmodyfikuj plik .htacccess w następujący sposób:
źródło
Jeśli masz tylko kod php w jednym pliku html, ale masz wiele innych plików, które zawierają tylko kod html, możesz dodać następujący kod do swojego pliku .htaccess, aby obsługiwał tylko ten konkretny plik jako php.
Spowoduje to, że PHP będzie wykonywalne TYLKO w pliku „yourpage.html”, a nie na wszystkich stronach html, co zapobiegnie spowolnieniu całego serwera.
Jeśli chodzi o to, dlaczego ktoś może chcieć obsługiwać php za pośrednictwem pliku html, używam funkcji IMPORTHTML w arkuszach kalkulacyjnych Google, aby zaimportować dane JSON z zewnętrznego adresu URL, który musi zostać przeanalizowany za pomocą php, aby go wyczyścić i zbudować tabelę html. Jak dotąd nie znalazłem sposobu na zaimportowanie pliku .php do arkuszy kalkulacyjnych Google, więc aby funkcja działała, musi zostać zapisany jako plik .html. Możliwość obsługi php za pośrednictwem pliku .html jest niezbędna do tego konkretnego zastosowania.
źródło
Utwórz pusty plik za pomocą notatnika i nazwij go .htaccess, a następnie skopiuj ten plik do katalogu projektu, dodaj tę linię i zapisz.
w przeciwnym razie zapisz plik .html za pomocą .php, ponieważ php może obsługiwać html i zapisz go w komputerze / var / www / html path (linux)
źródło
AJAX to również możliwość. Skutecznie chciałbyś mieć dane ze strony php. Gdy już masz dane, możesz je sformatować w javascript i wyświetlić.
źródło
NOWOCZESNA WERSJA: teraz również musisz to naprawić, zmieniając mało znane „security.limit_extensions” w php-fpm, robiąc to. Prawdopodobnie znasz już dobrze udokumentowany mechanizm zmiany Apache na AddHandler / AddType. Nie będę się tym tutaj zajmował.
MUSISZ dowiedzieć się, gdzie znajduje się php-fpm / conf w twojej konfiguracji. Zrobiłem to, robiąc to
# grep -rnw '/etc/' -e 'security.limit_extensions'
Mam to z powrotem
'/etc/php-fpm.d/www.conf:387:;security.limit_extensions = .php .php3 .php4 .php5 .php7'
przejdź do tego pliku, edytuj go i UPEWNIJ SIĘ, ŻE SĄ ZROZUMIANE Np .: zmień z
';security.limit_extensions = .php .php3 .php4 .php5 .php7'
<- Uwaga: zwróć uwagę na";"
- ta linia jest domyślnie WYŁĄCZONA - i nie potrzebujesz wszystkich bzdurnych rozszerzeń, w rzeczywistości są prawdopodobnie niebezpieczne ... zmień to na'security.limit_extensions = .php .htm'
<- zauważ, że średnik jest teraz usunięty. następnie zrestartuj Apache / (lub nginx) i zrestartuj php-fpm# service php-fpm restart
# service httpd restart
źródło
Aby połączyć HTML i PHP, możesz użyć plików .phtml.
źródło