Inhoud map kopieëren
pakt een aangewezen map en kopieert alle inhoud (scripts en submappen met inhoud) naar een toegewezen locatie.
ik heb een script geschreven maar ik krijg niets als fouten.
zou iemand zo aardig kunnen zijn om als hij zin en tijd heeft, iets voor mij te schrijven
alvast bedankt
Als je je script eens geeft, dan kunnen wij kijken. En heb je error_reporting goed ingesteld?
Wat is het nut van regel 3 en 4?
das het probleem
Die moet je oplossen.
Niet dat er meldingen komen van fouten.
Dus gewoon dit:
Dat is toch wel stukken netter, duidelijker en mét foutafhandeling.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
// functie CopyFolder die de map van argument 2 naar de map van argument 1 kopieert
function CopyFolder($locatie, $van)
{
// controleer of $van-map bestaat
if(is_dir($van))
{
// controleer of $locatie-map bestaat én schrijfbaar is
if(!(is_dir($locatie) AND is_writable($locatie)))
{
// maak $locatie-map aan
mkdir($locatie);
}
else
{
// geef false terug
return false;
}
}
else
{
// geef false terug
return false;
}
// wanneer beide mappen dus bestaan en schrijfbaar ziijn
// kijk of de $dh-handle aangemaakt kan worden
if($dh === false)
{
// geef false terug
return false;
}
else
{
// alle bestanden uit $van-map halen
while (false !== ($object = readdir($dh)))
{
// als $obj geen . of .. is
if ($obj == '.' OR $obj == '..')
{
// deze objecten overslaan
continue;
}
// als het kopieren van het object uit de $van-map naar de $locatie-map lukt
if(!copy($van . "/" . $obj, $locatie . "/" . $obj))
{
// geef false terug
return false;
}
}
// alles is gelukt, dus return true
return true;
}
}
?>
// functie CopyFolder die de map van argument 2 naar de map van argument 1 kopieert
function CopyFolder($locatie, $van)
{
// controleer of $van-map bestaat
if(is_dir($van))
{
// controleer of $locatie-map bestaat én schrijfbaar is
if(!(is_dir($locatie) AND is_writable($locatie)))
{
// maak $locatie-map aan
mkdir($locatie);
}
else
{
// geef false terug
return false;
}
}
else
{
// geef false terug
return false;
}
// wanneer beide mappen dus bestaan en schrijfbaar ziijn
// kijk of de $dh-handle aangemaakt kan worden
if($dh === false)
{
// geef false terug
return false;
}
else
{
// alle bestanden uit $van-map halen
while (false !== ($object = readdir($dh)))
{
// als $obj geen . of .. is
if ($obj == '.' OR $obj == '..')
{
// deze objecten overslaan
continue;
}
// als het kopieren van het object uit de $van-map naar de $locatie-map lukt
if(!copy($van . "/" . $obj, $locatie . "/" . $obj))
{
// geef false terug
return false;
}
}
// alles is gelukt, dus return true
return true;
}
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
// functie CopyFolder die de map van argument 2 naar de map van argument 1 kopieert
function CopyFolder($locatie, $van)
{
// controleer of $van-map bestaat
if (is_dir($van)) {
// controleer of $locatie-map bestaat én schrijfbaar is
if (!(is_dir($locatie) and is_writable($locatie))) {
// maak $locatie-map aan
mkdir($locatie);
} else {
// geef false terug
}
} else {
// geef false terug
return false;
}
// wanneer beide mappen dus bestaan en schrijfbaar ziijn
// kijk of de $dh-handle aangemaakt kan worden
$dh = opendir($van);
if ($dh === false) {
// geef false terug
return false;
} else {
// alle bestanden uit $van-map halen
while (false !== ($obj = readdir($dh))) {
// als $obj geen . of .. is
if ($obj == '.' or $obj == '..' or $obj == 'Thumbs.db') {
// deze objecten overslaan
continue;
}
if (!is_dir($obj)) {
// als het kopieren van het object uit de $van-map naar de $locatie-map lukt
if (!copy($van . "/" . $obj, $locatie . "/" . $obj)) {
// geef false terug
return false;
}
} else {
CopyFolder($locatie . "/" . $obj, $van . "/" . $obj);
}
}
// alles is gelukt, dus return true
return true;
}
}
?>
// functie CopyFolder die de map van argument 2 naar de map van argument 1 kopieert
function CopyFolder($locatie, $van)
{
// controleer of $van-map bestaat
if (is_dir($van)) {
// controleer of $locatie-map bestaat én schrijfbaar is
if (!(is_dir($locatie) and is_writable($locatie))) {
// maak $locatie-map aan
mkdir($locatie);
} else {
// geef false terug
}
} else {
// geef false terug
return false;
}
// wanneer beide mappen dus bestaan en schrijfbaar ziijn
// kijk of de $dh-handle aangemaakt kan worden
$dh = opendir($van);
if ($dh === false) {
// geef false terug
return false;
} else {
// alle bestanden uit $van-map halen
while (false !== ($obj = readdir($dh))) {
// als $obj geen . of .. is
if ($obj == '.' or $obj == '..' or $obj == 'Thumbs.db') {
// deze objecten overslaan
continue;
}
if (!is_dir($obj)) {
// als het kopieren van het object uit de $van-map naar de $locatie-map lukt
if (!copy($van . "/" . $obj, $locatie . "/" . $obj)) {
// geef false terug
return false;
}
} else {
CopyFolder($locatie . "/" . $obj, $van . "/" . $obj);
}
}
// alles is gelukt, dus return true
return true;
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door stefan lenders
Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in XXXXXXXXXXX/script.php on line 35
iemand die met kan helpen?
staan alle bestanden en mappen wel in dezelfde root? Houd ook rekening mee dat je niet IN de map kopieert maar NAAR een map!
op mijn localhost geen probleem, op de server wel, want als ik dan een submap er in zet doet hij het niet.
dus mappen zoals test/test + inhoud daar loopt hij op kapot
mapnamen zijn een voorbeeld
chmod
nee, hij ziet de map als een file, terwijl dat toch gefilterd wordt