Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tiedostojen nimien muutos isoiksi

Jantse [01.06.2007 09:50:08]

#

Onnistuukohan kerralla jollain konstilla muuttaa ison joukon tiedostojen nimejä kapitaaleiksi???
Kun php-ohjelma pätkä tekee linkkejä, joissa tiedostonimet (tietokannasta) on kapitaaleja, mutta oikeissa tiedostonimissä on sekä pieniä että isoja kirjaimia.

Onko muita vaihtoehtoja, apu tulis nyt tarpeeseen!
Kiitos jo etukäteen jos on vastauksia...

K_L [01.06.2007 09:56:12]

#

Onnistuu...

Lue tiedostot yksi kerrallaan. Muuta nimi. Looppaa kunnes hakemisto käyty läpi.

Antti Laaksonen [01.06.2007 10:03:57]

#

Jos tiedostojen nimet tietokannassa ovat alun perin oikein, mutta PHP-ohjelma jostain syystä tärvelee ne, ehkä paras ratkaisu olisi korjata PHP-ohjelmaa niin, että se säilyttää nimet ennallaan. Mutta tiedostojen nimet voi toki tarvittaessa muuttaa isoiksi vaikka juuri PHP:n avulla.

<?php
foreach(glob("data/*") as $nimi) {
    rename($nimi, strtoupper($nimi));
}
?>

Tämä koodi muuttaa hakemistossa data olevien tiedostojen nimet isoiksi. Erikoisemmat merkit (kuten ääkköset) kannattaa tarkistaa erikseen, koska ne muuttuvat isoiksi milloin mitenkin. Jos PHP:n käyttö ei tule tässä kysymykseen, niin kerro tarkemmin käytössä olevasta alustasta.

Jantse [01.06.2007 15:41:14]

#

Koetin tehä .php sivun jossa oli tuo Antin koodi. Sen jälkeen menin sivulle ja selain sanoi, että "Warning: Invalid argument supplied for foreach() in /home/int2000/d/26039/html/tiedostot/muutanimi.php on line 2"
Tiedostot ja kansio oli chmodettu 777:ksi

Löysin myös alla olevan koodin ja yritin suorittaa sen mutta tiedostonimet eivät muuttuneet...
Eikös nämä koodinpätkät pitäisi toimia vain kun menee selaimella sivulle jossa koodi on???

<?php
$path = 'path/to/directory';
$dir_handle = opendir($path);
while ($file = readdir($dir_handle))
{
    rename($file, strtoupper($file));
}
closedir($dir_handle);
?>

Antti Laaksonen [01.06.2007 16:01:13]

#

Suorititko koodin oikeassa hakemistossa? Esim. jos minun koodiani käyttää sellaisenaan, se täytyy suorittaa hakemistossa, jonka alihakemisto on muutettavat tiedostot sisältävä "data".

Jantse [04.06.2007 10:18:19]

#

Joo nyt sain toimimaan Antin koodilla, mutta myös myös tuo kansion nimi "DATA" piti olla kirjoitettuna isolla (sekä koodissa, että kansion todellinen nimi) ;)

KIITOS AVUSTA!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta