creare una pagina html dimanicamente con php

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ragazzi è possibile creare dinamicamente una pagina html con php?
se è possibile conoscete qualche risorsa o tutorial in merito?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
come scrivere in un file di testo, cambia solo l'estensione
PHP:
<?php

$file = "pagina.html";

$codice = "
<html>
<head><title>Prova</title></head>
<boby></body>
</html>
";

$fo = fopen($file, "w");
fwrite($fo, $codice);
fclose($fo);
?>
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Grazie mille per la risposta ma non succede nulla.
Nel senso che non appare neanche la scritta vediamo e se inserisco un semplice div mi da errore
Ho inserito questo codice nel file php

PHP:
<?php

$file = "pagina.html";
$codice = "
<html>
<head>
<title>Prova</title></head>
<boby>
vediamo
</body>
</html>

";
$fo = fopen($file, "w");
fwrite($fo, $codice);
fclose($fo);

?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
allora non ho capito
il codice che ho postato crea un file html di nome pagina nella stessa cartella dove viene eseguito
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
si funziona hai ragione tu ma quindi quando al link mando a prova.php crea la pagina nella stessa directory online?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
si
se vuoi crearlo da un altra parte cambi il percorso
PHP:
$file = "cartella/pagina.html";
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
tutto è possibile
PHP:
<?php
if (isset($_POST["crea"])) {
    $file = "pagina.html";

    $codice = "
<html>
<head><title>Prova</titile></head>
<boby></body>
</html>
";

    $fo = fopen($file, "w");
    fwrite($fo, $codice);
    fclose($fo);
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <input type="submit" name="crea" value="Crea Pagina"/>
</form>
 

chsoftwares

Nuovo Utente
25 Set 2015
2
0
0
tutto è possibile
PHP:
<?php
if (isset($_POST["crea"])) {
    $file = "pagina.html";

    $codice = "
<html>
<head><title>Prova</titile></head>
<boby></body>
</html>
";

    $fo = fopen($file, "w");
    fwrite($fo, $codice);
    fclose($fo);
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    <input type="submit" name="crea" value="Crea Pagina"/>
</form>
Io ho provato però mi da un errore altervista che è: La pagina http://miosito.altervista.org/%3C?php%20echo%20$_SERVER[%27PHP_SELF%27]%20?%3E non è presente.

Come mai? dove sbaglio? eppure ho inserito il codice in questo modo

HTML:
<?php 
if (isset($_POST["crea"])) { 
    $file = "pagina.html"; 
    $codice = " 
<html> 
<head><title>Prova</titile></head> 
<boby></body> 
</html> 
"; 
    $fo = fopen($file, "w"); 
    fwrite($fo, $codice); 
    fclose($fo); 
} 
?> 

<html>
<head>

  <title></title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> 
    <input type="submit" name="crea" value="Crea Pagina"/> 
</form>
</body>
</html>
 

MarcoGrazia

Utente Attivo
15 Dic 2009
788
16
18
59
Udine
www.stilisticamente.com
Puoi anche fare qualche cosa di più creativo :) per esempio evitare di usare un form per la creazione della pagina:
PHP:
<?php 
if ( isset( $_GET['crea'] ) && $_GET['crea'] == 'yes' ) { 
    $codice =<<<PAGINAHTML 
<html> 
<head><title>Prova</titile></head> 
<boby>
  <h1>Pagina di prova</h1>
</body> 
</html> 
PAGINAHTML; 

    $fo = fopen( 'pagina.html', "w" ); 
    fwrite( $fo, $codice ); 
    fclose( $fo ); 
} 
?><html>
<head>

  <title></title>
</head>
<body>
    <input type="button" name="crea" value="Crea Pagina" onclick="location.assign( 'http://tuo_url/<?php echo $_SERVER['PHP_SELF']; ?>?crea=yes' )">
</body>
</html>
Per non parlare di non usare un brutto bottone standard ( che comunque puoi modificare tramite css ) ma un comodo link, sostituendo l'input con l'ancora, così:
HTML:
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?crea=yes">Crea la pagina</a>
Alla fine quel che fai è creare una chiamata tramite GET in cui passi un valore attraverso la coppia crea = yes, se questa c'è crea il file, salvandolo poi nel disco.
Ovviamente non ci sono dati passati oltre al crea=yes, via GET si possono passare solo 256 caratteri meno la lunghezza dell'url completo, insomma va bene per queste cose ma se devi passare informazioni da mettere nel tuo file html, allora torni al form e invii tramite POST.
Ho usato l'heredoc per creare il file perché ti da più possibilità, per esempio non avrai i soliti problemi di escape ( la barretta rovescia ) da mettere davanti agli apici, singoli o doppi, creando il file html.
Dubito che ti basta l'esempietto :)