Volná diskuze

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Zdravím,
jak moc je těžké naprogramovat script, který by prošel jednu složku s tisíci soubory a našel mezi nimi soubory, které mají v názvu thumb. A u těchto souborů změnil koncovku třeba z .txt na .doc?
Děkuji moc za vysvětlení
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

Otakar Pěnkava

Administrátor
WD Trader: 4.6/5

Příspěvky: 2707
Registrace: 15.10.2010
Vypíšeš si všechny soubory z adresáře do cyklu. V tom cyklu budeš kontrolovat, zda název obsahuje thumb a pokud ano, tak pomocí rename() soubor přejmenuješ.

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Otakar Pěnkava píše:
Vypíšeš si všechny soubory z adresáře do cyklu. V tom cyklu budeš kontrolovat, zda název obsahuje thumb a pokud ano, tak pomocí rename() soubor přejmenuješ.



Tak to bude pro mě trošku obtížnější. No ale teď mám ještě zkoušky, tak že kdybych mohl sem přijít pro radu rozpracovaného scriptu někdy později byl bych rád.

A prosím tě jak moc náročný je script, když by kontroloval 10 000 souborů?
Vyplatí se vůbec takovýto script vytvářet?
A díky moc za odpověď
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

PcDr. Marty
Uživatelský avatar
WD Trader: 4/5

Příspěvky: 119
Registrace: 25.11.2010
tohle projede vsechny soubory v adresari a tem co obsahuji "tbumb" proda koncovku .txt
// bez zaruky :)
Kód: Vybrat vše
$d = dir("./slozka-se-soubory");

while (false !== ($entry = $d->read())) {
   $f = $d->path . "/" . $entry;
   if (substr_count ($entry, "thumb") >0) rename($f, $f.".txt");   
}

$d->close();


peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
PcDr. Marty píše:
tohle projede vsechny soubory v adresari a tem co obsahuji "tbumb" proda koncovku .txt
// bez zaruky :)
Kód: Vybrat vše
$d = dir("./slozka-se-soubory");

while (false !== ($entry = $d->read())) {
   $f = $d->path . "/" . $entry;
   if (substr_count ($entry, "thumb") >0) rename($f, $f.".txt");   
}

$d->close();




Skoro to funguje. Jen je problém, že to změní příponu a jako celý název to vezme název s příponou. Tak že před přejmenováním je soubor ahoj_thumb.txt a po přejmenování je ahoj_thumb.txt.doc.
A takto mi to přejmenuje i soubory, které již doc jsou. Třeba jmeno_thumb.doc to přejmenuje na jmeno_thumb.doc.doc.
Ale díky, ani sem bych se nedostal za týden.
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

PcDr. Marty
Uživatelský avatar
WD Trader: 4/5

Příspěvky: 119
Registrace: 25.11.2010
Kód: Vybrat vše
$d = dir("./slozka-se-soubory");

while (false !== ($entry = $d->read())) {
   $f = $d->path . "/" . $entry;
   if (substr_count ($entry, "thumb") >0) rename($f, str_replace(".doc",".txt",$f);   
}

$d->close();


Uprava - zmena pripony .doc na txt

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Díky moc, funguje to parádně, jen je tam menší chybička chybí tam ")" u "rename($f, str_replace(".doc",".txt",$f)); ".

Ještě jednou díky a funguje to rychle 93 souborů z 536 (zkouška) udělalo za pár vteřin.
Mohu se jen zeptat, kde jsi se takhle naučit programovat?
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

PcDr. Marty
Uživatelský avatar
WD Trader: 4/5

Příspěvky: 119
Registrace: 25.11.2010
nj, zavorka... Mastil jsem to jen tak od oka :)
Kdyz budes mit ve slozce tisice souboru, tak uz to tak rychly nebude...

Programovat? Ani nevim, to me tak samo chytlo asi v patnacti a ted, po patnacti letech me to stale drzi :)

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
No a na jak dlouhou dobu vidíš, že by script mezi tisíci soubory našel přibližně tisíc na změnu?

Aha 15 let, tak to mám ještě daleko, ale musím uznat, že to co ty děláš od oka já plácám dlouhou dobu.

Ale teď když, jsem dal zkoušku na zkušebním webu, tak nevím proč, ale tam soubory ani nejsou potřeba měnit vše běží jak má, tak že bude chyba někde v nastavení serveru, ale jinak by to změna přípony také vyřešila. Ale chyba serveru se má řešit ;).
Tak ještě jednou díky a přeji hodně úspěchů ;) a ne jen v programování
_________

Prosím vás co znamená tahle značka "->". Děkuji nevím jak ji v PHP využít.
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

PcDr. Marty
Uživatelský avatar
WD Trader: 4/5

Příspěvky: 119
Registrace: 25.11.2010
-> je operátor, kterým přistupuješ k nějaké vlastnosti/proměnné/funkci objektu.
dir v php je pseudo-objekt, proto $d->read(); , Dalo by se místo toho použít opendir / readdir, ale... jsem zvyklej na dir

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
PcDr. Marty píše:
-> je operátor, kterým přistupuješ k nějaké vlastnosti/proměnné/funkci objektu.
dir v php je pseudo-objekt, proto $d->read(); , Dalo by se místo toho použít opendir / readdir, ale... jsem zvyklej na dir



Díky za vysvětlení, ale asi jsem dost velký laik, jelikož jsem to tvé krásné odborné vysvětlení moc nepochopil. Promiň
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

Pro plnohodnotné využívání fóra, vč. psaní příspěvků se musíte registrovat nebo se přihlásit.
Registrovat se nebo Přihlásit se