- Home
- Categorie
- Coding e Sistemistica
- PHP
- Duplicare uno stupido file .txt aggiungendo un ciclo for
-
Duplicare uno stupido file .txt aggiungendo un ciclo for
Ciao a tutti,
avrei la necessità di duplicare un semplice file txt però aggiungendo un numero...
file.txt
file0.txt
file1.txt
file2.txt
file3.txtIn pratica l'utente premendo uno stupido pulsante...
Deve poter duplicare il file che si chiama: **file.txt**Aggiungendo un numero... forse un ciclo for oppure un numero che si incrementa... come posso fare?
Grazie
File di invio duplica.html
<form action="duplica.php" method="POST"> <input type="submit" value="duplica"> </form> ```file di ricezione **duplica.php**
<?
$n=0;
$t=$n+1;
...
file.txt + $t (bòòòòò)
....
?>grazie ?>
-
@max_400 said:
oppure un numero che si incrementa...
Potresti usare il timestamp.
-
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