• User Attivo

    Generare centinaia di pagine PHP

    Ciao a tutti!

    ho cercato sul forum.... ho cercato su Google.... ho cercato pure sotto al letto :bigsmile: ....ma non ho trovato una soluzione...quindi mi rimetto a voi VERI webmaster.

    Il problema è relativamente semplice: vorrei generare alcune centinaia di pagine partendo da una semplicissima lista di parole (esempio: pippo, pluto, paperino,...).

    Le pagine dovrebbero chiamarsi pippo.php, pluto.php, paperino.php, ecc....e la loro struttura dovrebbe essere pressocchè identica tranne per pochi elementi contenuti nella pagina: ad esempio nel TITLE, nel body, nel TAG H1, ecc....compare la parola in questione.

    Allora, ho l'elenco di parole (file di testo, Excel, DB mySQL), ho il template prova.php...esiste un software che generi il tutto in automatico? Esiste uno script a prova di idiota che generi il tutto via PhpMyAdmin? Esiste un qualche cavolo di metodo o mi devo mettere lì a manina e fare una pagina per volta??? :arrabbiato:

    Grazie per i suggerimenti!!!!


  • User Attivo

    (per sbaglio ho inviato questa risp rapida e l'ho editata in questo modo sorry)


  • User Attivo

    Ehehe non hai cercato benissimo 😄 comunque si che esiste, praticamente tu crei un file alla volta. Quello che ti consiglio io è:
    Inserisci questi nomi in una lista per esempio in un'array, poi lo scorri piano piano e ad ogni scorrimento crei la pagina con nome $array[0] (che contiene per esempio pippo) e così via.
    Per creare la pagina devi fare in questo modo:
    Fai conto che siamo nel ciclo e siamo a $array[0] che contiene pippo, quindi creiamo una variabile $codice che conterrà tutto il codice html o html/php della pagina prova.php.
    Quindi devi fare una variabile di tipo stringa gigante 😄 con dentro <title>$array[$contatore]</title> e <h1>$array[$contatore]</h1>
    es.:
    [php]
    $mia_pagina="
    <html>
    <head>
    <title>$array[$contatore]</title>
    </head>
    <body>
    <h1>$array[$contatore]</h1>
    <p>testo bla bla bla</p>
    </body>
    ";
    [/php]
    Fatto questo devi creare un file.php che contenga questa stringa ed hai finito:
    [php]
    if (!$p_file = fopen("$array[$contatore].php","a+")) {
    echo "Spiacente, non posso aprire il file $array[$contatore].php!";
    } else {
    fputs($p_file,$mia_pagina);
    fclose($p_file);
    echo "Ho creato correttamente $array[$contatore].php";
    }
    [/php]
    E il gioco è fatto chiaramente ci vorrà un pò di tempo per farne un sacco 😄
    E come creare il file si trova anche su giorgiotave.it 😉
    ciaociao


  • User Attivo

    Madre de Diòs, mi sanguina il naso....:bigsmile:

    Purtroppo non c'ho capito una mazza...:? Il fatto è che non sono un tecnico nè un programmatore e quindi per me cose tipo l'ARRAY sono già arabo (so che rischio il ban ma abbiate pietà di me!!!! :wink3:).

    Speravo davvero ci fosse un software che creasse pagine in automatico....

    Quello che non ho capito è: ma l'esempio che mi hai fatto mi crea proprio le pagine in .php tipo pippo.php? E dove me le salva? Direttamente sul sito?

    Mi sa che devo farmi un bel corso di PHP....


  • User Attivo

    Ahah dai anche se sei molto inesperto (non che io sia un mago) ti provo a spiegare almeno cosa devi fare.
    Proviamo con solo 10 pagine così evitiamo di starci troppo tempo e se va allora le metti tutte. Per prima cosa creiamo la pagina crea_pagine.php la apri con un editor di testo anche il blocco note di windows ed iniziamo a mettere in un'array i nomi (pippo ecc.) dato che è una pagina che devi fare al volo per crearne altre non stiamo attenti alla bellezza del codice html ;):
    Per prima cosa ci buttiamo dentro questo:
    [html]
    <html>
    <head>
    <title>Pagina che crea pagine! (che titolo è!?)</title>
    </head>
    <body>
    </body>
    </html>
    [/html]
    Ok ora abbiamo il codice html della pagina ora tra i tag <body> e </body> ci inseriamo il codice php, con questo misterioso array :D:
    [html]
    <html>
    <head>
    <title>Pagina che crea pagine! (che titolo è!?)</title>
    </head>
    <body>

    <?PHP
    $array[]=("pippo","pluto","paperino","simone","marco","gaetano");
    ?>
    </body>
    </html>
    [/html]
    Bene per ora scrivi questo e salva appena hai fatto andiamo al passo successivo (se vuoi lascia tutto com'è solo per provare, comunque come penso avrai capito i contenuti dell'array sono separati dalle virgole ed ognuno è contenuto dentro degli apici).
    Quando hai fatto diccelo 😉


  • User Attivo

    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! :bravo:


  • User Attivo

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


  • User Attivo

    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?


  • ModSenior

    I permessi della cartella devono essere a 777


  • User Attivo

    Ho riprovato con i permessi a 777, ri-uploadato la pagina e rilanciata col browser ma...nulla, nessun segno di vita.

    :mmm:


  • ModSenior

    All'avvio dello script viene visualizzato qualche messaggio di errore?


  • User Attivo

    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?


  • User Attivo

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


  • User Attivo

    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! :wink3:


  • ModSenior

    Non dovrebbero esserci problemi con le dimensioni dell'array, tranne il tempo massimo di esecuzione dello script che di solito è impostato a 30 secondi.


  • User Attivo

    Ho cantato vittoria troppo presto?? :bigsmile:

    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?


  • ModSenior

    allora per gli apici devi metterci il backslash davanti cosi "


  • User Attivo

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


  • User Attivo

    Prego, comunque come dice thedarkita ci può mettere un sacco nell'esecuzione 😄


  • User Attivo

    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 ucfirst

    esempio:

    [php]

    <title>ucfirst($array[$contatore])</title>

    [/php]