Autor Zpráva
Pavel Vlček
Profil *
Dobrý den. Tentokrát mi nefunguje scandir a copy. Asi to bude tím, že můj soubor má příponu php a ne php5, ale pro jistotu posílám k´ód s chybou.

$dir='/admin';
$files = scandir($dir);
copy($files,$domena);
$domena se pošle ve formuláři, který zde neposílám.
V adresáři admin mám další adresáře a soubory a chci, aby se do té $domena zkopírovali.
Můžete mi opět poradit?
Vím, že sem zasílám kódy, které jsou buď chybně napsané, nebo jsem špatně spojil řetězce, jenže jsem nevidomý a brouzdání manuálem mi trvá dost dlouho.

Díky.
Adresář admin existuje, ale hlásí to:
doména byla zaregistrovaná
Warning: scandir(/admin) [function.scandir]: failed to open dir: No error in C:\AppServ\www\_www\regcomp.php on line 22

Warning: scandir() [function.scandir]: (errno 0): No error in C:\AppServ\www\_www\regcomp.php on line 22

Doména = adresář, který uživatel pošle ve formuláři.
djlj
Profil
První vstupní proměnná funkce copy musí být adresa k souboru, ne nějaké pole, či co ze scandiru vyleze.

Podívej se, jestli máš u toho adresáře ve Windows správně nastavená práva.
Pavel Vlček
Profil *
Práva adresáře admin =0777.
djlj
Profil
Pavel Vlček
Na Windows ale žádná práva 777 neexistují.
Pavel Vlček
Profil *
Tak moment. Mám zjistit práva adresáře admin, nebo windows? Trošku se začínám zamotávat.
djlj
Profil
Adresáře admin. To znamená v průzkumníku označit složku, zmáčknout alt+enter, následně karta Zabezpečení.
Pavel Vlček
Profil *
Já tam mám jen obecné, zdílení a vlastní nastavení.
Pavel Vlček
Profil *
Změnil jsem původní kód na:
$dir='admin/';
$files = scandir($dir);
$p = count($files);
$t = $p - 2;
for ($a = 1; $a == $t; $a++);
{
copy($files,$domena);
}
Ale hlásí to chybu v copy nosuch file or directory.
Pavel Vlček
Profil *
Změnil jsem původní kód na:
$dir='admin/';
$files = scandir($dir);
$p = count($files);
$t = $p - 2;
for ($a = 1; $a == $t; $a++);
{
copy($files,$domena);
}

Ale hlásí to chybu v copy nosuch file or directory.
Mike8748
Profil
Pavel Vlček
co si nepochopil na predchozi odpovedi
>> První vstupní proměnná funkce copy musí být adresa k souboru, ne nějaké pole, či co ze scandiru vyleze.

tedy ze tam nemas cpat pole?

v tvym kodu copy($files,$domena) bude $files nahrazenot textem "Array", a pochybuju ze tam mas nejakej takovej soubor.

tam by melo bejt spis copy($files[$a],$domena); (jinak jakej by melo smysl X krat kopirovat jeden soubor?)
Pavel Vlček
Profil *
Takže to array mám dát místo $files do copy? Se mnou je to těžké. Já jsem našel v manuálu něco podobného.
Mike8748
Profil
prikaz copy jako zadnej parametr Array nebere, tak to tam nikam davat nemuzes

pouzij ten zvyrazneny kod z posledniho prispevku
Pavel Vlček
Profil *
Jenže já na něj nevidím, takže nevím, jaký kód to byl. Bylo to to copy($files[$a] atd?
Pokud ano, hlásí to permission denied.
djlj
Profil
Pavel Vlček
Prostě v copy musí být něco jako: copy("./soubor.jpg", "./slozka/soubor.jpg");. Viz manuál.
Pavel Vlček
Profil *
Takže přez tuto funkci nelze kopýrovat složky?
nightfish
Profil
Takže přez tuto funkci nelze kopýrovat složky?
kopírovat

nelze to úplně jednoduše... je potřeba cyklem rekurzivně procházet adresář, soubory kopírovat, adresáře vytvářet v novém umístění a pak pokračovat s kopírováním v nich
Mastodont
Profil
Pavel Vlček
Ne. Na kopírování celých složek máš dost příkladů v manuálu.
http://cz2.php.net/manual/en/function.copy.php

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0