मैं HTML (.html) फ़ाइलों में PHP कोड / फ़ाइल कैसे जोड़ूँ?


97

मैं अपने HTML पृष्ठों में PHP का उपयोग नहीं कर सकता। उदाहरण के लिए, index.html। मैंने दोनों का उपयोग करने की कोशिश की है:

<? contents ?> 

तथा

<?php contents ?> 

न ही ये काम। मेरा सर्वर PHP प्रदान करता है, और जब मैं .phpएक्सटेंशन का उपयोग करता हूं , तो यह ठीक से काम करता है। क्या यह कोई समस्या है या क्या मुझे वरीयताओं को बदलना होगा php.ini?


2
Html फ़ाइलों को php के रूप में परोसने के लिए आपको अपना सर्वर बदलना होगा (मैं अपाचे को मानता हूं), लेकिन आप एक्सटेंशन को php के बजाय html क्यों चाहते हैं?
धमाका गोलियां


@ExplosionPills मैंने IIS v7 का उपयोग करके किया है! और यह संभव है!
पूर्ववत

@ मेरे कहने का मतलब यह नहीं था कि यह केवल अपाचे के साथ किया जा सकता है, मैंने सिर्फ यह माना कि वह अपाचे का उपयोग कर रहा था।
विस्फोट जूल

1
कितना भयानक विचार है। अपने एसईओ को बचाने के लिए रीडायरेक्ट का उपयोग करें। HTML के लिए .html का प्रयोग करें और PHP के लिए .php का।
एलियन टेक्नोलॉजी

जवाबों:


142

आप PHP को .html फाइलों में नहीं चला सकते क्योंकि सर्वर इसे मान्य PHP एक्सटेंशन के रूप में नहीं पहचानता है जब तक कि आप इसे नहीं बताते। ऐसा करने के लिए आपको अपनी मूल वेब निर्देशिका में एक .htaccess फ़ाइल बनाने और इस पंक्ति को इसमें जोड़ने की आवश्यकता है:

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

यह अपाचे को एक .htm या .html फ़ाइल एक्सटेंशन के साथ फ़ाइलों को PHP फ़ाइलों के रूप में संसाधित करने के लिए बताएगा।


15
जबकि यह सही है मुझे लगता है कि एक और महत्वपूर्ण सवाल यह है कि ऐसा क्यों करें? इसके अलावा, .htaccessअगर वह एक विकल्प है, तो उसे उपयोग करने के बजाय सर्वर कॉन्फ़िगरेशन को अपडेट करना चाहिए ।
धमाका गोलियां

11
मैंने कई बार इस तथ्य को छिपाने के लिए किया है कि मैं PHP का उपयोग कर रहा हूं (अन्य चीजों के अलावा)
13

3
@nickb - अस्पष्टता के माध्यम से सुरक्षा?
नाथन लॉन्ग

2
@NathanLong w3.org/TR/cooluris विशिष्ट रूप से, "कार्यान्वयन-विशिष्ट बिट्स और टुकड़ों जैसे .php और .asp को अपने URI से बाहर रखें, आप बाद में प्रौद्योगिकियाँ बदलना चाह सकते हैं।" खंड 4.5 में।
एरिक फिन

4
@EricFinn - यह एक अच्छी गाइडलाइन है। लेकिन .htmlPHP के रूप में सर्वर प्रक्रिया फ़ाइलों का होना आवश्यक नहीं है, या इसके पालन में सहायक भी। आप चाहते हैं कि उपयोगकर्ता जाएँ example.com/foo। आप अपने सर्वर पर फ़ाइल नामों की परवाह किए बिना PHP सामग्री की सेवा के लिए उस URL का उपयोग कर सकते हैं। यदि उपयोगकर्ता पहले ही foo.htmlबुकमार्क कर चुके हैं, तो आप foo.phpफ़ाइल का नाम बदले बिना सेवा कर सकते हैं ।
नाथन लॉन्ग

20

मुझे लगता है कि एक .html फ़ाइल में PHP लिखना भ्रमित और प्राकृतिक विरोधी है। तुम ऐसा क्यों करोगे??

वैसे भी, अगर आप क्या चाहते हैं कि PHP फ़ाइलों को निष्पादित करें और उन्हें पता बार में .html के रूप में दिखाएं, तो एक आसान समाधान सामान्य रूप से .php का उपयोग करना होगा, और इस तरह से अपने .htaccess में एक नियम लिखें।

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

अगर मैं PHP + HTML का उपयोग करूं तो क्या होगा? मुझे किस प्रारूप का उपयोग करना चाहिए? मैं काफी उलझन में हूं। मेरे पृष्ठ का PHP पर आधारित वास्तव में संक्षिप्त कोड है और HTML में कई कोड हैं। तो मैं क्या करने जा रहा था एक HTML फ़ाइल बनाने के लिए है। क्या यह एक बुरी आदत है?
हून

3
प्रारूप .php होना चाहिए, जैसा कि .html फाइलों में केवल HTML कोड होता है।
डेविड मोरेल्स

15

। Php फ़ाइलों में php का उपयोग करने के लिए, आपको उन्हें अपने HTTP सर्वर की config फाइल में अपने PHP प्रोसेसर के साथ जोड़ना होगा। अपाचे में, जो इस तरह दिखता है:

AddHandler application/x-httpd-php .html

क्या आप AddHandlerऔर के बीच के अंतर पर टिप्पणी करना चाहेंगे AddType? धन्यवाद।
पैट्रिक

1
@PatrickT तुलना करने का सबसे सरल तरीका यह है कि AddHandler एक "इनपुट" मैपिंग है - यह एक हैंडलर के लिए आने वाली फ़ाइल एक्सटेंशन को मैप करता है। AddType आउटपुट MIME प्रकार हेडर को संशोधित करता है। यहां देखें नोट: httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype
Chris Trahey

13

आप संशोधित कर सकते हैं। जैसा कि अन्य लोगों ने कहा है, लेकिन सबसे तेज़ समाधान है फ़ाइल एक्सटेंशन को .php में बदलना


आप भी .phtml
Floggedhorse

9

इस लाइन को जोड़ें

AddHandler application/x-httpd-php .html

httpd.confआप क्या करना चाहते हैं, इसके लिए फाइल करें। लेकिन याद रखें, यदि आप ऐसा करते हैं, तो आपका वेब सर्वर बहुत धीमा हो जाएगा, क्योंकि यह स्टैटिक कोड भी पार्स कर रहा होगा, जिसमें phx कोड नहीं होगा। तो बेहतर तरीका यह होगा कि आप फ़ाइल एक्सटेंशन .phtmlको केवल के बजाय बढ़ाएं .html


5
कृपया अपना पूरा उत्तर बोल्ड में न लिखें।
डेविड मोरेल्स

7

.htmlसाथ ही पार्स की गई फ़ाइलों के लिए , आपको अपने सर्वर कॉन्फ़िगरेशन में उपयुक्त हैंडलर सेट करना होगा।

अपाचे httpd 2.X के लिए यह निम्नलिखित पंक्ति है

AddHandler application/x-httpd-php .html

अपने विशिष्ट सर्वर इंस्टॉलेशन के बारे में जानकारी के लिए PHP दीक्षाएँ देखें ।


6

डिफ़ॉल्ट रूप से आप HTML पृष्ठों में PHP का उपयोग नहीं कर सकते हैं।

ऐसा करने के लिए, अपनी .htacccess फ़ाइल को निम्न के साथ संशोधित करें:

AddType application/x-httpd-php .html

4

यदि आपके पास केवल एक 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>

यह केवल "yourpage.html" फ़ाइल पर PHP को निष्पादन योग्य बना देगा और आपके सभी html पृष्ठों पर नहीं जो आपके पूरे सर्वर पर मंदी को रोक देगा।

जैसे कि कोई html फ़ाइल के माध्यम से php की सेवा क्यों करना चाहता है, मैं JSON डेटा को बाहरी url से आयात करने के लिए Google स्प्रेडशीट में IMPORTHTML फ़ंक्शन का उपयोग करता हूं जिसे इसे साफ करने और HTML तालिका बनाने के लिए php के साथ पार्स किया जाना चाहिए। अब तक मुझे Google स्प्रैडशीट में .php फ़ाइल आयात करने का कोई तरीका नहीं मिला है, इसलिए इसे कार्य करने के लिए .html फ़ाइल के रूप में सहेजा जाना चाहिए। एक। Html फ़ाइल के माध्यम से php परोसने में सक्षम होना उस विशेष उपयोग के लिए आवश्यक है।


बहुत व्यावहारिक।
मात्रा

4

नोटपैड का उपयोग करके एक खाली फ़ाइल बनाएं और उसे नाम दें। तब उस फ़ाइल को अपनी प्रोजेक्ट डायरेक्टरी में कॉपी करें और इस लाइन को जोड़ें और सेव करें।

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

और .html फ़ाइल का उपयोग करके। html को सेव करें। php html को सपोर्ट कर सकता है, और इसे कंप्यूटर / var / www / html पाथ (लाइनबोर्ड) में सेव कर सकता है।


1
उन लोगों के बारे में विचार करने के लिए धन्यवाद, जो एक .htaccess फ़ाइल बनाना भी नहीं जानते हैं।
क्वांटम

0

AJAX भी एक संभावना है। प्रभावी रूप से आप php पेज से डेटा चाहते हैं। एक बार जब आपके पास डेटा होगा तो आप जावास्क्रिप्ट और डिस्प्ले में किसी भी तरह से प्रारूपित कर सकते हैं।

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

आधुनिक समीक्षा: आपको अब इसे php-fpm में थोड़ा ज्ञात '' security.limit_extensions '' को बदलकर ठीक करने की आवश्यकता है। आप शायद 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. इस फ़ाइल पर जाएं, इसे संपादित करें और यह सुनिश्चित करें कि आप इसे सही समझ रहे हैं: इसे ';security.limit_extensions = .php .php3 .php4 .php5 .php7'<- NB: से बदल दें ";"- ध्यान दें - यह पंक्ति वास्तव में डिफ़ॉल्ट रूप से अस्वीकृत है - और आपको सभी निरर्थक एक्सटेंशनों की आवश्यकता नहीं है, वास्तव में वे हैं शायद खतरनाक है .. इसे बदल 'security.limit_extensions = .php .htm'दें <- ध्यान दें कि अर्ध उपनिवेश अब हटा दिया गया है। फिर अपाचे / (या नगनेक्स) को पुनः आरंभ करें और php-fpm को पुनः आरंभ करें# service php-fpm restart # service httpd restart


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.