2010-02-04 36 views
8

Sono nuovo di PHP. Ho installato XAMPP e ho avviato Apache. Ho creato helloworld.php in htdocs di XAMPP e ho fatto visualizzare PHP nel mio browser. La mia domanda è: perché il mio script PHP nel mio file HTML non viene visualizzato nel mio browser? Ive non ha mai installato PHP da solo. Dovrei installarlo anche io? Sarebbe in conflitto con XAMPP. Il mio codice è sotto Qualsiasi assistenza sarà apprezzata. Grazie in anticipo:Script PHP non funziona nel file HTML

<html> 
<body> 

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

</body> 
</html> 
+0

Hai intenzione di pubblicare più codice? –

+0

Qual è l'uscita? –

+1

È il file nella directory "www" nel server Apache? (Credo che sia www, potrebbe essere www-root) E se lo stai aprendo come: http: //localhost/myFile.php? – Cipi

risposta

9

XAMPP già include PHP, ma a meno che non si finisce il nome dello script con .php è improbabile che possa essere elaborato dal motore PHP.

+0

Sì, ma non è necessario inserire lo script nella cartella www di XAMPP? O mi sbaglio...? – Cipi

+0

@Cipi: certo. Ma preferisco dare al richiedente un * beneficio * del dubbio a meno che non provi il contrario. –

+0

Non solo improbabile, è solo configurato per .php (e forse .php5, ho dimenticato) fuori dagli schemi. Il semplice .html (o .htm) verrà servito direttamente da Apache. – Paolo

5

Il modulo php per apache si registra come gestore per il tipo mime application/x-httpd-php. E il file di configurazione di apache \ conf \ aggiuntivo \ httpd-xampp.conf contiene le linee

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

che racconta l'apache che tutti i file che hanno estensione .php come nome devono essere processi da parte del gestore per application/x -httpd-php.
Se vuoi (davvero) avere i tuoi file .html gestiti dal modulo php, devi aggiungere qualcosa di simile per le estensioni .html. (ci sono altri metodi per dire all'apache quale estensione è associata a quale tipo/gestore mime.)
Se si desidera abilitare questa "funzione" per una sola directory, è possibile utilizzare uno .htaccess file per modificare la configurazione per quella directory (e le sue sottodirectory).

+0

Grazie per la risposta VolkerK. Lo script funziona ora che ho cambiato l'estensione .html in .php. Tuttavia, se clicco sul file, helloworld.php, Windows non conosce il programma che lo ha creato (anche se ho Apache in esecuzione). Sono un po 'perplesso, dovrei installare anche PHP per Windows? – Anthony

+1

"se faccio clic sul file" - cioè facendo doppio clic su Windows Explorer? Apache e Windows Explorer non sono connessi, "non si conoscono" l'un l'altro. Apache gestisce le richieste http che ad es. il tuo browser invia. – VolkerK

+0

Ok, grazie mille VolkerK, ora capisco. – Anthony

12

Suppongo che stiate cercando di utilizzare php all'interno del file .html? Prova ad aggiungere file .htaccess o la modifica di configurazione di apache con la seguente riga:

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

Sì Sto cercando di usare php all'interno di un file .html. Stavo seguendo l'esempio fornito da w3schools (vedi link sotto) e ho appena pensato che avrebbe funzionato ovunque dopo aver eseguito Apache: http://www.w3schools.com/php/php_syntax.asp Per quanto riguarda il file .htaccess o cambiando la configurazione di apache, dovrò cercarla. – Anthony

+0

Errore mio, w3schools ha detto che devi avere un'estensione .php (not.html) altrimenti non funzionerebbe – Anthony

4

Si dovrebbe aggiungere mime type all'indirizzo http conf ad esempio in apache a httpd.conf ingresso

<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

Stop the servizio Apache, quindi aggiungere un cambio in c: \ xampp \ apache \ conf \ httpd.conf nella sezione con l'aggiunta di ...

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

Restart ap dolore!

Questa sembra una grande "funzionalità" nella distribuzione xampp corrente per win 32-bit.

+0

Come mai non vedo la cartella apache? Aggiornamento: Trovato. Httpd.conf si trova nella mia cartella etc. Non ti permetterà di modificare direttamente, quindi dovrai "sudo su" prima di modificarlo. Grazie a tutti! –

0

Troppo eccessivo. Tutti questi suggerimenti mi portano lungo il percorso sbagliato per circa 5 ore. JK, ma ho letto un sacco di elementi di ricerca di Google che davano tutte risposte sbagliate e ogni suggerimento stava aggiungendo altre risposte sbagliate.

La risposta è in realtà così semplice che vorresti sbattere la testa: basta cambiare l'estensione del file da ".html" a ".php" !!! Ricorda che puoi creare una pagina web interamente da PHP e tutto il codice JavaScript e tutto ciò che è stato realizzato come JavaScript, JQuery, bootstrap, ecc. Funzionerà.

Ecco un semplice esempio di prova:

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

Si noti che sto usando il codice HTML standard, anche se non mostra le mie tag HTML (credetemi è lì), roba della pagina web e inserire il codice php all'interno. Ovviamente il risultato è 15 e anche l'elemento h4 h4 viene visualizzato correttamente. Cambia l'estensione in "html" e otterrai solo l'elemento h4 e scoprirai che il tuo codice php è stato commentato usando multi-comment per html.

Ho dimenticato di aggiungere che questo funziona anche per Xampp.