Tämä koodi uudelleennimeää mitkä tahansa tiedostot (Ainakin mikäli ne ovat apachen document rootissa)
Ideaalinen valokuvien uudelleennimeämiseen. Kamerahan nimeää kuvat esimerkiksi SANY0012, mikä ei ole useinkaan mukava nimi. Tällä skriptillä voit nimetä kansioissa olevat tiedostot esimerkiksi muotoon omat.1, omat.2, jne. Numerot listautuvat laskevassa järjestyksessä.
EDIT:Muokattu, niin että nyt on oikeat koodit molemmissa
PHP-koodi
<?php ################################ # TIEDOSTOJEN UUDELLEENNIMEÄJÄ # ################################ function uudelleennimea_tiedostot($kansio, $nimi="Uusi nimi", $tarkennin="txt", $nimeamattomat="") { #Lue hakemisto taulukkoon, jos submit-nappia on painettu. if(isset($_POST['submit'])) { $taulukko=scandir($kansio) or die("Hakemistoa ei pystytty lukemaan taulukkoon. Tarkista, että kirjoitit kansion nimen oikein!"); } #Silmukoi jokaisen alkion läpi. foreach($taulukko as $numero => $filu) { #Tiedoston vanha nimi täydellisellä hakemistopolulla. $vanhaNimi=$kansio."\\".$filu; #Poistetaan $numero-muuttujasta 1, jotta nimien numerointi alkaisi yhdestä (Listaus: [0] => . [1] => ..). $numero = $numero - 1; #Määritellään uusi nimi täydellisellä hakemistopolulla. $uusiNimi=$kansio."\\".$nimi.".".$numero.".".$tarkennin; #Nimetään tiedostot uudestaan. HUOM! Tähän kohtaan EI VOI LAITTAA "or die("")", sillä silloin tulee Permission Denied-virhe. #Koodi on valitettavasti vain niin itsepäinen, ettei edes if-lauseella toteutettu virhesanoma toimi. Tässä siis täytyy luottaa #siihen, että ilman viestejä pärjätään. $uudelleennimeaminen=rename($vanhaNimi, $uusiNimi); #Käyttäjälle menevä viestitys... if($uudelleennimeaminen !=false) echo basename($vanhaNimi)." => ".basename($uusiNimi)."<br />"; else { if(basename($vanhaNimi)=="." or basename($vanhaNimi)=="..") continue; else { echo "<font color='red'>".basename($vanhaNimi)." => ".basename($uusiNimi)."</font> ***<font color='red'>Uudelleennimeäminen epäonnistui</font><br />"; break; } } } if($uudelleennimeaminen !=false) echo "<script language='javascript' type='text/javascript'> alert('Uudelleennimeäminen onnistui!') </script>"; else echo "<script language='javascript' type='text/javascript'> alert('Virhe tapahtui uudelleennimettäessä kuvia!') </script>"; } ?>
HTML-koodi (.php
<?php require("kuvannimeaja.php"); ?> <html> <head> <title>Tiedostojen uudelleennimeäjä 1.0</title> </head> <body> <form method="post" action="http://localhost/Uudelleennimeaja/tiedostonnimeaja.php"> <p>Kansio, jossa tiedostot ovat. Huomaa, että jos kansiossa on muita kansioita, <br /> niiden sisältöä ei uudelleennimetä mitenkään, mutta kansiot <br /> nimetään vastaavasti kuin muutkin tiedostot. <br /> Huom! Kansion nimessä <strong>EI SAA OLLA</strong> yksinkertaista lainausmerkkiä (').</p> <input type="text" name="kansio"> <br /> <p>Tiedoston nimi. Tiedostot nimetään tähän tyyliin: jotain.0 , jotain.1 , jotain.2 jne.<br /> Tämä nimi tekee jokaisen tiedoston nimestä yksilöllisen, mikäli uudelleennimeät useita eri<br /> kansioita ja laitat jokaisen kansion kohdalla tähän eri nimen.<br /> Huom! Nimessä <strong>EI SAA OLLA</strong> yksinkertaista lainausmerkkiä (').(Valinnainen)</p> <input type="text" name="nimi"> <br /> <p>Tiedoston uuden nimen tarkennin (Parhaan laadun takaamiseksi kannattaa laittaa alkuperäinen tarkennin).<br /> Esimerkiksi jpg, jpeg, png, txt, pdf, ym. Älä laita pistettä tarkentimen eteen.(Valinnainen)</p> <input type="text" name="tarkennin"> <br /> <input type="submit" value="Nimeä uudelleen" name="submit"> </form> <?php $kansio=strip_tags($_POST['kansio']); $nimi=strip_tags($_POST['nimi']); $tarkennin=strip_tags($_POST['tarkennin']); uudelleennimea_tiedostot($kansio, $nimi, $tarkennin); ?> </body> </html>
Sama bash-onelinerina: n=1 && for a in *.jpg; do mv "$a" loma$n.jpg; n=$(expr $n + 1); done
Noi lomakkeiden actionit on kivoja.
Täyttä paskaa suoraan sanottuna.
Tuli väärä tohon toiseen :P
Editoin sen ny niin, että oikeet koodit
Tuo toimii myös, vaikka uudelleennimettävät tiedostot olisvat jossain hakemistossa työpöydällä. Sellasen kuitenkin huomasin, että se tekee virheen, jos päivittää sivun (sama ku lähettäis samat tiedot)
Aihe on jo aika vanha, joten et voi enää vastata siihen.