Visualizzazione dei risultati da 1 a 10 su 10

Discussione: 3.650 fopen

  1. #1

    3.650 fopen

    Ciao,
    ogni giorno dell’anno mi servono 10 file php (completamente vuoti), i cui nomi sono i seguenti (l’esempio è per oggi 11-07-2008):

    giulia_08_071108001.php
    giulia_08_071108002.php
    giulia_08_071108003.php
    giulia_08_071108004.php
    giulia_08_071108005.php
    giulia_08_071108006.php
    giulia_08_071108007.php
    giulia_08_071108008.php
    giulia_08_071108009.php
    giulia_08_071108010.php

    In pratica, dopo:
    giulia_08_ (che è fisso)
    segue il mese “07”, il giorno “11”, l’anno “08”, e un numero da “001” a “010”.

    Servendomi 10 file per ogni giorno dell’anno, mi occorrono ben 3.650 file.
    Potrei crearli tutti manualmente (copiando, incollando e rinominando ogni file) ma è una grande rottura di palle.


    A fare 10 file in un clik (per la data corrente) riuscirei facilmente, facendo come segue:

    Codice PHP:
    $data date ("mdy",mktime(0,0,0,date("m"),date("d"),date("Y"))); // oggi in mdY

    $numero001 "001";
    $numero002"002";
    $numero003 "003";
    $numero004 "004";
    $numero005 "005";
    $numero006 "006";
    $numero007 "007";
    $numero008 "008";
    $numero009 "009";
    $numero010 "010";

    $uncavolo "";


    $file1=fopen("giulia_08_ $data$numero001.php","w+"); // fa il file php 001
    fwrite ($file1$uncavolo);
    fclose ($file1); //chiude il file

    $file2=fopen("giulia_08_ $data$numero002.php","w+"); // fa il file php 002
    fwrite ($file2$uncavolo);
    fclose ($file2); //chiude il file 
    Poi lo ripeterei fino al file php 010…


    IO PERO’… vorrei farmi tutti i file in un solo click. Ovvero 10 file per ogni giorno dell’anno… i 3.650! Ovvero da:
    giulia_08_010108001.php a giulia_08_123108010.php

    Qualche suggerimento?
    Grazie
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061

    Re: 3.650 fopen

    Originariamente inviato da Giulia72
    Ciao,
    ogni giorno dell’anno mi servono 10 file php (completamente vuoti), i cui nomi sono i seguenti (l’esempio è per oggi 11-07-2008):

    giulia_08_071108001.php
    giulia_08_071108002.php
    giulia_08_071108003.php
    giulia_08_071108004.php
    giulia_08_071108005.php
    giulia_08_071108006.php
    giulia_08_071108007.php
    giulia_08_071108008.php
    giulia_08_071108009.php
    giulia_08_071108010.php

    In pratica, dopo:
    giulia_08_ (che è fisso)
    segue il mese “07”, il giorno “11”, l’anno “08”, e un numero da “001” a “010”.

    Servendomi 10 file per ogni giorno dell’anno, mi occorrono ben 3.650 file.
    Potrei crearli tutti manualmente (copiando, incollando e rinominando ogni file) ma è una grande rottura di palle.


    A fare 10 file in un clik (per la data corrente) riuscirei facilmente, facendo come segue:

    Codice PHP:
    $data date ("mdy",mktime(0,0,0,date("m"),date("d"),date("Y"))); // oggi in mdY

    $numero001 "001";
    $numero002"002";
    $numero003 "003";
    $numero004 "004";
    $numero005 "005";
    $numero006 "006";
    $numero007 "007";
    $numero008 "008";
    $numero009 "009";
    $numero010 "010";

    $uncavolo "";


    $file1=fopen("giulia_08_ $data$numero001.php","w+"); // fa il file php 001
    fwrite ($file1$uncavolo);
    fclose ($file1); //chiude il file

    $file2=fopen("giulia_08_ $data$numero002.php","w+"); // fa il file php 002
    fwrite ($file2$uncavolo);
    fclose ($file2); //chiude il file 
    Poi lo ripeterei fino al file php 010…


    IO PERO’… vorrei farmi tutti i file in un solo click. Ovvero 10 file per ogni giorno dell’anno… i 3.650! Ovvero da:
    giulia_08_010108001.php a giulia_08_123108010.php

    Qualche suggerimento?
    Grazie
    be innanzi tutto migliora un po quello dei 10 giorni

    Codice PHP:
    $data date ("mdy",mktime(0,0,0,date("m"),date("d"),date("Y"))); // oggi in mdY

    $uncavolo "";

    for(
    $i=1;$i<=10;$i++){
       
    $file1=fopen("giulia_08_ {$data}00{$i}.php","w+"); // fa il file php 001
       
    fwrite ($file1$uncavolo);
       
    fclose ($file1); //chiude il file

    per il resto dei 365 giorni devi giocare con la funzione date, mi sembra sia possibile passargli un offset, cioè aumentare i giorni....

    devi giocare con mktime e date... qui

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Ciao byaur,
    con mktime posso cambiare data ma... non ho proprio idea di come alterarla 365 volte e finalizzare il tutto alla creazione di 3.650 file tutti con nome diverso...
    Ho perfino dei dubbi che sia possibile...
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  4. #4
    La soluzione di byaur mi sembra sufficiente.

    Devi solo annidare i cicli.

    Credo tu si nuovo di php e ancora non conosca bene questi strumenti. Consiglio un manuale semplice e gratuito per cominciare: http://www.booksopen.org/index.php?v...tent&Itemid=56

    In bocca al lupo
    Scarica manuali e libri open source in formato epub, pdf, mpeg: www.ebooksopen.org

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    no... nn avere dubbi... tutto è possibile

    esempio

    Codice PHP:
    $anno_rif 2008;
    for(
    $i 1;$i<=12;$i++){  //ciclo sui mesi
      //ciclo i giorni -> devi fare i controlli per febbraio e i mesi che hanno 30 giorni
      
    for($j 1;$j <= 31;$j++){ 
            
    $data date ("mdy",mktime(0,0,0,$i,$j,$anno_rif));
            
    $uncavolo "";

            for(
    $i=1;$i<=10;$i++){
                 
    $file1=fopen("giulia_08_ {$data}00{$i}.php","w+"); // fa il file php 001
                 
    fwrite ($file1$uncavolo);
                 
    fclose ($file1); //chiude il file
            
    }
            
      }

    è solo una bozza, mancano i controlli sui giorni...
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Ecco il codice di byaur con pure l'aggiunta dei controlli sui giorni....
    dovrebbe andare ma nn l'ho testato...
    Codice PHP:
    function calcola_giorni_mese($mese$anno) { 

     return 
    date('t'mktime(000$mese+10$anno)); 
    }

    $anno_rif 2008;
    for(
    $i 1;$i<=12;$i++){  //ciclo sui mesi
      //ciclo i giorni e calcolo giorni in mese
    $giorni=calcola_giorni_mese($i,$anno_rif);
      for(
    $j 1;$j <= $giorni;$j++){
            
    $data date ("mdy",mktime(0,0,0,$i,$j,$anno_rif));
            
    $uncavolo "";

            for(
    $i=1;$i<=10;$i++){
                 
    $file1=fopen("giulia_08_ {$data}00{$i}.php","w+"); // fa il file php 001
                 
    fwrite ($file1$uncavolo);
                 
    fclose ($file1); //chiude il file
            
    }
            
      }


  7. #7
    ciao,
    i cicli non li avevo mai annidati...
    Sto provando a testare il codice e non mi segnala nessun errore ma i files non vengono creati... Sto sbagliando qualcosa?
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  8. #8
    Avevo sbagliato a scrivere una cosa nella pagina. Adesso i file vengono creati ma sono solo 310, non 3.650...
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  9. #9
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    si hai ragione...
    facendo copia e incolla mi sono scordato un'indice...
    Codice PHP:
    function calcola_giorni_mese($mese$anno) {
      return 
    date('t'mktime(000$mese+10$anno));
    }

    $anno_rif 2008;
    for(
    $i 1;$i<=12;$i++){  //ciclo sui mesi
      //ciclo i giorni e calcolo giorni in mese
    $giorni=calcola_giorni_mese($i,$anno_rif);
      for(
    $j 1;$j <= $giorni;$j++){
            
    $data date ("mdy",mktime(0,0,0,$i,$j,$anno_rif));
            
    $uncavolo "";

            for(
    $k=1;$k<=10;$k++){
                 
    $file1=fopen("giulia_08_ {$data}00{$k}.php","w+");
                 
    fwrite ($file1$uncavolo);
                 
    fclose ($file1); //chiude il file
            
    }
            
      }

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  10. #10
    Grazie byaur! e grazie a tutti!

    Funziona perfettamente
    C'era un piccolo problema con i file 010 che diventavano 0010 ma l'ho risolto così
    (è sicuramente una soluzione imperfetta ma a me basta che funzia )

    Codice PHP:

    $anno_rif 
    $giulie[0]; 
    for(
    $i 1;$i<=12;$i++){  //ciclo sui mesi 
      //ciclo i giorni e calcolo giorni in mese 
    $giorni=calcola_giorni_mese($i,$giulie[0]); 
      for(
    $j 1;$j <= $giorni;$j++){ 
            
    $data date ("mdy",mktime(0,0,0,$i,$j,$giulie[0])); 
            
    $uncavolo "";

            for(
    $k=1;$k<=9;$k++){ 
                 
    $file1=fopen("$giulie[1]/giulia_$giulie[1]_{$data}00{$k}.php","w+"); 
                 
    fwrite ($file1$uncavolo); 
                 
    fclose ($file1); //chiude il file

           
    }
             
      } 
    }

    $anno_rif $giulie[0]; 
    for(
    $i 1;$i<=12;$i++){  //ciclo sui mesi 
      //ciclo i giorni e calcolo giorni in mese 
    $giorni=calcola_giorni_mese($i,$giulie[0]); 
      for(
    $j 1;$j <= $giorni;$j++){ 
            
    $data date ("mdy",mktime(0,0,0,$i,$j,$giulie[0])); 
            
    $uncavolo "";

            for(
    $k=10;$k<=10;$k++){ 
                 
    $file1=fopen("$giulie[1]/giulia_$giulie[1]_{$data}0{$k}.php","w+"); 
                 
    fwrite ($file1$uncavolo); 
                 
    fclose ($file1); //chiude il file

           
    }
             
      } 

    Firma opzionale che voglio compaia in fondo ai miei messaggi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.