- Home
- Categorie
- Coding e Sistemistica
- PHP
- Generare centinaia di pagine PHP
-
Arieccomi!
Ok, così passo passo è perfetto, ce la posso fare pure io!;)
Ho fatto la pagina con EditPlus. E ora?Grazie in anticipo per la pazienza infinita!
-
Bene ora creiamo un ciclo in cui dovranno crearsi le pagine con la struttura dentro. Per prima cosa facciamo finta che questa sia la tua pagina di default in cui cambi solo il <title> e <h1> :
[html]
<html>
<head>
<title></title>
</head>
<body>
<h1></h1>
</body>
</html>
[/html]
(Poi tu ti vedi la pagina come deve andare io ti faccio vedere solo il tag title e h1) Bene vista questa pagina sotto a $array della precedente faremo un ciclo for che scorre l'array e salva queste pagine:
[php]
<html>
<head>
<title>Pagina che crea pagine! (che titolo è!?)</title>
</head>
<body><?PHP
$array[]=("pippo","pluto","paperino","simone","marco","gaetano");
for($contatore=0; $contatore<count($array); $contatore++)
{
/QUI DENTRO CI METTIAMO TUTTA LA STRUTTURA DELLA PAGINA DI DEFAULT AGGIUNGENDO LA
VARIABILE $array[$contatore] come detto all'inizio/
$mia_pagina="<html>
<head>
<title>$array[$contatore]</title>
</head>
<body><h1>$array[$contatore]</h1>
</body>
</html>
";
/*Fatta la struttura che cambia il nome di $array[$contatore] ad ogni ciclo salviamo la pagina: */
if (!$p_file = fopen("$array[$contatore].php","w+")) {
echo "Spiacente, non posso creare il file $array[$contatore].php!<br />";
} else {
fputs($p_file,$mia_pagina);
fclose($p_file);
echo "Ho creato correttamente $array[$contatore].php <br />";
}
} //chiudo il for
?>
</body>
</html>
[/php]
Ok dovremmo aver finito, fai una prova con questa ultima pagina che ti ho postato inserendo in array per esempio 5 nomi per fare prima e vedere se funziona. Chiaramente in questo stato la pagina ti creerà il tutto dove inserisci questa pagina.php (che salvi con in nome che vuoi non è influente , basta che sia .php). Es. richiami la pagina che hai inserito in: www.miosito.it/prova/pagina.php.
I file verranno creati in www.miosito.it/prova.
Per far creare i file basta che richiami questa pagina dal browser. Se hai problemi a disposizione, o se vuoi crearli in una directory precisa diccelo Spero di esser stato il più chiaro possibile.
-
Ho creato la pagina proprio come nel tuo esempio, salvata in una sottocartella (va bene che le pagine vengano create lì) e lanciata dal browser ma...nada! Nulla, schermata bianca.
Ho pensato fosse colpa dei permessi della cartella e li ho settati a CHMOD 777 ma nulla lo stesso.
Ho lanciato la pagina col browser Firefox 3 e anche con Explorer 7.Versione PHP del sito: 4.4.4
Ha bisogno di permessi particolari la funzione fputs che salva la pagina?
-
I permessi della cartella devono essere a 777
-
Ho riprovato con i permessi a 777, ri-uploadato la pagina e rilanciata col browser ma...nulla, nessun segno di vita.
-
All'avvio dello script viene visualizzato qualche messaggio di errore?
-
No, nulla: si vede solo una pagina completamente bianca. Nessun messaggio di errore....
Facendo Visualizza -> Sorgente Pagina non si vede nulla....:x
Forse è il caso di sentire i tecnici di Seeweb per sapere se c'è qualche filtro o impostazione particolare sul server?
-
Mmmm ... prova a chiedere a loro allegandogli lo script e vedi che ti dicono.. Comunque dopo che arrivo a casa (che ora sto a lavoro) provo a lanciarlo io...
-
Funziona!!!!!
Il tecnico mi ha detto di sotituire la stringa dell'array così:
[PHP]$array=array("pippo","pluto","paperino","simone","marco","gaetano");[/PHP]
Ed ha funzionato perfettamente! Ora provo a fargli creare la pagina come voglio io e vedo se funziona.
Poi provo ad aumentare il numero di pagine create...secondo voi se gli do in pasto un'array con oltre 1000 elementi mi tira giù il server??Cmq grazie mille **scwd **e Thedarkita! Vi devo una birra!
-
Non dovrebbero esserci problemi con le dimensioni dell'array, tranne il tempo massimo di esecuzione dello script che di solito è impostato a 30 secondi.
-
Ho cantato vittoria troppo presto??
Allora, primo problema: se nel codice della pagina che voglio creare ci sono dei doppi apici " come li tratto??
Con EditPlus per fare in modo che il codice dopo [PHP]$mia_pagina="[/PHP] rimanesse tutto dello stesso colore (rosa) ho dovuto raddoppiare tutti i doppi apici così: ""Ma lanciando la pagina....nulla, come prima.
La pagina che vorrei creare non è complessa però:- c'è una tabella
- ci sono un paio di javascript
- ci sono degli include
- ci sono ovviamente un sacco di doppi apici (tipo in meta name="keywords" ...)
Idee?
-
allora per gli apici devi metterci il backslash davanti cosi "
-
E grazie ancora!
Avevo provato sia sostituendo gli apici " con ' sia con il metodo che mi hai detto tu (lo preferisco!).Un'ultima richiesta poi giuro che non vi rompo più
Pensavo a come scrivere le URL delle pagine e mi piacerebbe che fossero pippo.php (tutto minuscolo).
Però nel TITLE e nel CORPO vorrei che fosse Pippo (prima lettera maiuscola): si può fare con l'array?Un'altra soluzione potrebbe essere fare tutto maiuscolo, sia URL che nel TITLE, H1, ecc...ma vero che Google non vede di buon occhio le URL tutte maiuscole tipo PIPPO.php??
-
Prego, comunque come dice thedarkita ci può mettere un sacco nell'esecuzione
-
Ciao! Rieccomi nella sezione php... sono stato 1 po' impegnato in questi tempi
beh allora hai ragione, sia dal punto di vista che i titoli maiuscoli non sono molto buoni oerchè nelle chiavi di ricerca, devi cercare su google in maiuscolo, mentre se il titolo è minuscolo, sia che la ricerca suil motore sia maiuscola o minuscola lo trovi lostesso (l'avevo letto da qualche parte non chiedermi il perchè)... e poi è più professional!
Per rendere la prima lettera maiuscola puoi usare la funzione ucfirstesempio:
[php]
<title>ucfirst($array[$contatore])</title>
[/php]
-
ciao,
sinceramente mi sono perso un pò di risposte comunque, come dice oliviero, se vuoi fai la prima maiuscola, ma se vuoi c'è anche una funzione per tutto maiuscolo.
ciaooo
-
La funzione ucfirst non funziona: nella pagina (nel title e nel body) mi visualizza ucfirst(pippo)
Ho provato con uc e \U ma sempre stessa cosa.
-
Ci posti il codice che hai messo? perchè penso hai sbagliato ad utilizzare la funzione
-
Ecco qui:
[PHP]<html>
<head>
<title>Pagina che crea pagine! (che titolo è!?)</title>
</head>
<body>
<?PHP
$array=array("pippo","pluto","paperino");
for($contatore=0; $contatore<count($array); $contatore++)
{
/QUI DENTRO CI METTIAMO TUTTA LA STRUTTURA DELLA PAGINA DI DEFAULT AGGIUNGENDO LA
VARIABILE $array[$contatore] come detto all'inizio/
$mia_pagina="<html>
<head>
<title>ucfirst($array[$contatore]) - Titolo Pagina</title>
</head>
<body>
<h1>ucfirst($array[$contatore])</h1>
</body>
</html>
";
/*Fatta la struttura che cambia il nome di $array[$contatore] ad ogni ciclo salviamo la pagina: */
if (!$p_file = fopen("$array[$contatore].php","w+")) {
echo "Spiacente, non posso creare il file $array[$contatore].php!<br />";
} else {
fputs($p_file,$mia_pagina);
fclose($p_file);
echo "Ho creato correttamente $array[$contatore].php <br />";
}
} //chiudo il for
?>
</body>
</html>[/PHP]Così crea le pagine in minuscolo (pippo.php) ma visualizza il titolo così:
ucfirst(pippo) - Titolo Pagina
-
[php]
<html>
<head>
<title>Pagina che crea pagine! (che titolo è!?)</title>
</head>
<body>
<?PHP
$array=array("pippo","pluto","paperino");
for($contatore=0; $contatore<count($array); $contatore++)
{
/QUI DENTRO CI METTIAMO TUTTA LA STRUTTURA DELLA PAGINA DI DEFAULT AGGIUNGENDO LA
VARIABILE $array[$contatore] come detto all'inizio/
$mia_pagina="<html>
<head>
<title>".ucfirst($array[$contatore])." - Titolo Pagina</title>
</head>
<body>
<h1>".ucfirst($array[$contatore])."</h1>
</body>
</html>
";
/*Fatta la struttura che cambia il nome di $array[$contatore] ad ogni ciclo salviamo la pagina: */
if (!$p_file = fopen("$array[$contatore].php","w+")) {
echo "Spiacente, non posso creare il file $array[$contatore].php!<br />";
} else {
fputs($p_file,$mia_pagina);
fclose($p_file);
echo "Ho creato correttamente $array[$contatore].php <br />";
}
} //chiudo il for
?>
</body>
</html>
[/php]