Rinominare cartella con Cronjob

  • Creatore Discussione Creatore Discussione Mistya
  • Data di inizio Data di inizio

Mistya

Nuovo Utente
26 Ott 2011
6
0
0
Salve,
non ho mai creato uno script del genere in php e vorrei un paio di dritte per capire cosa fare.

In poche parole io ho sul mio server un file, che chiameremo "cipolla.txt" e una cartella che chiameremo "cartella". Vorrei fare in modo che ogni ora cronjob richiamasse uno script in grado di
  • Generare un numero casuale
  • Scrivere tale numero casuale all'interno di cipolla.txt
  • Rinominare "cartella" utilizzando tale numero

Per fare ciò ho creato questo codice
PHP:
<?php
$basepath="/";
$dir = "cartella/";
$txt = "cipolla.txt";
$rand = rand(2,225);
$write_file=fopen("cipolla.txt","w");
fwrite($write_file,$rand);
fclose($write_file);
rename($dir,$rand);
?>

Il problema è chedopo essere stato eseguito la prima volta lo script smette di funzionare, in quanto non riesce a trovare "cartella" che ha precedentemente rinominato. Cosa si fa in questi casi?
 
io proverei a creare un altro file esterno con il path e il nome fisso in cui mi salvo ogni volta l'ultimo nome generato casualmente dallo script.
Successivamente, quando ti serve il nome, fai una semplice lettura in quel file acquisendo il nome della cartella.
Prova questa, intanto provo a pensare soluzioni migliori.
 
Ok, penso di averi capito.. tu dici di immagazzinare il numero random ottenuto nel ciclo precedente in un file di testo, in modo da recuperarlo all'esecuzione successiva.

Ho buttato giù questo
PHP:
<?php
$basepath="/";
$dir = file_get_contents('dato.txt');
echo $dir;
$rand = rand(2,2295);
$write_file=fopen("tuorlo.txt","w");
fwrite($write_file,"http://miosito.org/" . $rand . "/");
fclose($write_file);
$write_file=fopen("dato.txt","w");
fwrite($write_file,$rand . "/");
fclose($write_file);
?>

Ho messo un echo $dir per controllare se ottenevo il numero random generato al ciclo precedente, sembra funzionare.

Solo che adesso non so come impostare il contenuto di dato.txt = directory da rinominare, cosa mi manca?
 
Ultima modifica:
Si intendevo proprio quello ma questo secondo post tuo mi ha messo un pò di confusione.
Hai tolto la riga che permette di rinominare il file e non utilizzi il dato che hai preso dal 'dato.txt'.


Mistya ha scritto:
Solo che adesso non so come impostare il contenuto di dato.txt = directory da rinominare, cosa mi manca?

spiegati meglio perchè questa frase non mi è chiara del tutto. Se questo è solo un pezzo di codice della tua pagina, prova a postare un pò più di codice per far capire meglio il tuo problema. Il contenuto del file dato.txt lo modifichi correttamente con il codice postato.
 
Si intendevo proprio quello ma questo secondo post tuo mi ha messo un pò di confusione.
Hai tolto la riga che permette di rinominare il file e non utilizzi il dato che hai preso dal 'dato.txt'.

So di non utilizzare il contenuto di dato.txt e non lo utilizzo perché non so materialmente come fare. Cerco infatti di scrivere una riga che permette di rinominare il file, solo che non so come scriverla.
La riga dovrebbe essere una cosa tipo "Rinomina la directory che si chiama come scritto nel file dato.txt utilizzando il numero random".. come si scrive?

Quello è l'unico codice all'interno della mia pagina.
 
Per completezza d'informazione, avevo provato con
PHP:
rename($dir,$rand);
ma non va.
 
non va?? ho provato in questo modo e funge. Sempre se ho capito bene quello che vuoi fare. Prova e dimmi quale è il problema.

PHP:
<?php 
$dir = file_get_contents('dato.txt'); 
$rand = rand(2,2295); 
$write_file=fopen("tuorlo.txt","w"); 
fwrite($write_file,"http://miosito.org/" . $rand . "/"); 
fclose($write_file); 
$write_file=fopen("dato.txt","w"); 
fwrite($write_file,$rand . "/"); 
fclose($write_file); 
rename($dir,$rand);  
?>
 
Ho risolto!

In pratica io avevo scritto lo stesso codice che mi avevi scritto tu. Solo che ignoravo che in realtà la path dei miei file non era "/" ma era "/robastranadellhostingchenessunoconoscevaechenonesisteinnessunadocumentazioneesistente/


Grazie lo stesso, sei stato essenziale...
 

Discussioni simili