- Home
- Categorie
- Coding e Sistemistica
- PHP
- Duplicare uno stupido file .txt aggiungendo un ciclo for
-
il timestamp?
e che cos'è?
qualkosa che si mangia?... ih ih ihho bisogno esempi concreti ... io conosco poco php e molto actionscript
gradirei un bel esempio
grazie
-
Prova a fare un:
echo time();
E' il numero dei secondi intercorsi tra l'istante attuale e il primo Gennaio 1970
-
ho provato come dici tu
maxgiulia.altervista.org/max/08-agosto/textarea/prova/timestamp.phpe vedo tanti numeri di cui l'ultimo aumenta in modo progressivo
ma come faccio a collegarlo al file txt?che sintassi devo usare affinchè avvenga la duplicazione in modo progressivo del seguente file cucu.txt? :bho:
attendo risposta
grazie
-
Allora, se il contenuto del file non cambia mai, prima di produrre un nuovo txt devi copiare il contenuto in una variabile:
$var=fopen("cucu.txt","r"); $dim=filesize("cucu.txt"); $contenuto=fread($var,$dim); fclose($var);
Poi, ricavi il timestamp attuale, componi il nuovo nome del file e lo scrivi:
$time=time(); $nome='cucu_'.$time.'_.txt'; $var=fopen($nome,"w+"); fwrite($var,$contenuto); fclose($var);
Ti ritrovi dei nuovi file con questi nomi:
cucu_3456344757_.txt
cucu_4454567567_.txt
ecc...Tra l'altro, con il timestamp impresso nel nome del file, estrapolandolo con la funzione explode(), potresti ricavare data, ora, minuti e secondi del momento in cui quel file è stato creato!
-
Oppure, molto più semplicemente:
copy('cucu.txt','cucu_'.time().'_.txt');
Non ci avevo pensato...
-
senti però non ci sarebbe un altro modo
anzicchè il timestamp un semplice numero che aumenta prograssivamentetipo
$num=1;
$tot=$num+1;ed aggiungerlo al posto di time()
ho provato e me lo duplica una volta sola
-
Forse intendi questo:
<?php $limit=5; //Cambia questo numero per cambiare il numero di duplicati for($i=0;$i<$limit;$i++) copy('file.txt','file'.$i.'.txt'); ?> ```Occhio che devi settare i permessi di scrittura sulla cartella dove si trova file.txt Attento anche al fatto che ogni volta il nome del file deve essere diverso, altrimenti il primo utente duplica il file 5 volte e il secondo ricrea il file 5 volte sovrascrivendo quelli precedenti... in pratica così è inutile. Se ci spieghi a che ti serve magari è più semplice capirti e darti uno script che faccia al caso tuo.
-
ho provato il tuo script e funziona
però a me serve una sola copia in modo progressivoperchè non mi funziona quella semplice addizione?
Ps: tu che sei un utente premium come si fa a diventarlo ho provato quelle 20 domande ne ho indovinate 15 su 20.. il limite degli errori quant'è?
e come si fa conoscere le risposte?permessi di scrittura?
aspetta vostra risposta ragazzi...
adesso sto uscendo
mi collego dopo mezzanotte come il lupo
-
Questo dovrebbe fare al caso tuo.
Si poteva fare in modi più efficienti (e anche più fail safe), ma questo se ti vai a vedere cosa fanno le funzioni lo capisci anche.<?php $prefisso_file = 'file'; $suffisso_file = '.txt'; $directory_file='/cartella/'; $pre = $_SERVER{'DOCUMENT_ROOT'}.$directory_file.$prefisso_file; $n=0; while ( file_exists($pre.$n.$suffisso_file) ) $n++; copy($prefisso_file.$suffisso_file,$prefisso_file.$n.$suffisso_file); ?>
Siccome la funzione file_exists non accetta url relativi, devi sostituire "/cartella/" con la directory nella quale si trova il tuo file.txt, a partire dalla cartella principale (quella in cui hai caricato la index del tuo sito, per capirci).
Per diventare utente premium gli errori massimi sono..... zero!
Per conoscere le risposte è sufficiente studiarsi il regolamento, è tutto scritto lì.
-
ho provato il tuo script e me lo duplica 1 volta sola
il nome del file originale file.html
quello duplicato file0.html
e poi non duplica più
-
vabbè, fai così:
<?php $prefisso_file = 'file'; $suffisso_file = '.txt'; $n=0; while ( file_exists($prefisso_file.$n.$suffisso_file) ) $n++; copy($prefisso_file.$suffisso_file,$prefisso_file.$n.$suffisso_file); ?>
-
perfetto...
alla prossima
au revoir..
by max