Forum » Server-Side scripting » FTP -> Map Inhoud Verwijderen
Berichten: 70
avatar
Offline Stuur privebericht
Hoe kan je met behulp van php de inhoud van een map over ftp verwijderen?
29-08-2010 10:41
Dit topic is 293 keer bekeken door 47 verschillende leden
Reacties op: "FTP -> Map Inhoud Verwijderen"
1
29-08-2010 12:46
Berichten: 70
avatar
Offline Stuur privébericht
Bedankt voor je reactie.
Maar ik had al wat anders geprobeerd.
Namelijk dit:
Code | Selecteer Alles
minimaliseren
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
// set up the settings
$map '/map1/map2/';

$ftp_server 'ip';
$ftpuser 'user';
$ftppass 'pass';

// set up basic connection
$conn_id ftp_connect($ftp_server);

// login with username and password
$login_result ftp_login($conn_id$ftpuser$ftppass);

// try to delete $map
if (ftp_rmdir($conn_id$map)) { // the ftp function
echo "$map deleted successful<br>";
} else {
echo 
"could not delete $map<br>";
}

// try to create $map
if (ftp_mkdir($conn_id$map)) { // the ftp function
ftp_site($conn_id"CHMOD 777 $map") or die("FTP SITE CMD failed.");
echo 
"$map created successful";
} else {
echo 
"could not create $map";
}

// close the connection
ftp_close($conn_id);


Dat werkt wel. Alleen niet bij de map die ik wil, omdat deze namelijk in gebruik is.
Is er een methode om deze map toch te verwijderen en dan opnieuw aan te maken?
29-08-2010 13:21
Dupstep
Berichten: 2302
avatar
Offline Stuur privébericht
Verwijder gewoon de bestanden van in die map?
29-08-2010 13:25
Berichten: 70
avatar
Offline Stuur privébericht
Quote: FerhatR

Verwijder gewoon de bestanden van in die map?


Ja daar was ik zelf ook al aan begonnen
Alleen er is nog een dingetje dat wel mooi zou zijn als het zou werken.
De functie file_exists werkt niet over ftp. Dus hij kan niet eerst kijken of de file wel bestaan, want als het script de file probeert te verwijderen maar de file bestaat niet krijg je een error. En het zou dus mooier zijn om een eigen tekst daar neer te zetten in plaats van die standaard php error.

Voor de mensen die het interessant vinden, dit is het script:
Code | Selecteer Alles
minimaliseren
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
$file_main '/map/svss/pbsvss.htm';
$file_begin '/map/svss/pb0000';
$file_end1 '.htm';
$file_end2 '.png';

// set up basic connection
$conn_id ftp_connect($ftp_server);

// login with username and password
$login_result ftp_login($conn_id$ftpuser$ftppass);

if (
file_exists($file_main))
{
    if (
ftp_delete($conn_id$file_main))// the ftp function
    
{
        echo 
"$file_main deleted successful";
    }
    else
    {
        echo 
"could not delete $file_main";
    }
}
else
{
    echo 
"The file $file_main does not exist";
}

for (
$i=1$i<=100$i++)
{
    
$file_delete1 $file_begin $i $file_end1;

    if (
$i<=9)
    {
        
$file_delete1 $file_begin $i $file_end1;
    }

    if (
file_exists($file_delete1))
    {
        if (
ftp_delete($conn_id$file_delete1))// the ftp function
        
{
            echo 
"$file_delete1 deleted successful";
        }
        else
        {
            echo 
"could not delete $file_delete1";
        }
    }
    else
    {
        echo 
"The file $file_delete1 does not exist";
    }

    
$file_delete2 $file_begin $i $file_end2;

    if (
$i<=9)
    {
        
$file_delete2 $file_begin $i $file_end2;
    }

    if (
file_exists($file_delete2))
    {
        if (
ftp_delete($conn_id$file_delete2))// the ftp function
        
{
            echo 
"$file_delete2 deleted successful";
        }
        else
        {
            echo 
"could not delete $file_delete2";
        }
    }
    else
    {
        echo 
"The file $file_delete2 does not exist";
    }    
}

// close the connection
ftp_close($conn_id);

Als je dit script wilt laten werken moet je zelf natuurlijk wel nog even de ftp gegevens invullen.
29-08-2010 14:35
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Dit werkt toch gewoon?

Code | Selecteer Alles
minimaliseren
1
2
3
4
<?php
$bestandsnaam 
"mijnbestand.txt";
unlink($bestandsnaam);
?>


Als je een map bedoeld kan je dit doen:
Code | Selecteer Alles
minimaliseren
1
2
3
4
<?php
$mapnaam 
"mijnmap/";
unlink($mapnaam);
?>


Moet die map / bestand(en) wel op permissies 777 staan

Lars
29-08-2010 14:48
Berichten: 70
avatar
Offline Stuur privébericht
Quote: larsisgoed9

Dit werkt toch gewoon?

Code | Selecteer Alles
minimaliseren
1
2
3
4
<?php
$bestandsnaam 
"mijnbestand.txt";
unlink($bestandsnaam);
?>


Als je een map bedoeld kan je dit doen:
Code | Selecteer Alles
minimaliseren
1
2
3
4
<?php
$mapnaam 
"mijnmap/";
unlink($mapnaam);
?>


Moet die map / bestand(en) wel op permissies 777 staan

Lars


Werkt dat ook met ftp?
29-08-2010 15:02
Dupstep
Berichten: 2302
avatar
Offline Stuur privébericht
29-08-2010 15:04
Berichten: 70
avatar
Offline Stuur privébericht
Quote: FerhatR

Kijk hier:
http://php.net/manual/en/function.unlink.php



Daar had ik al gekeken
Daarom vroeg ik het ook.

Quote

When I'm using unlink() or rename() with a SSH2.SFTP wrapper, both functions always return FALSE (but without a warning) even on success.


Quote

I used ftp_connect() then ftp_delete() to erase files which unlink could not erase due to permision problems



Nieuwe reactie samengevoegd met originele reactie op 29.08.10 15:47:25:
De output is nu niet zo mooi vanwege een hoop errors. Het script zelf werkt wel.
Dus ik vind het goed genoeg.

Bedankt voor de hulp
29-08-2010 15:10
Reageer op: "FTP -> Map Inhoud Verwijderen"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden