Vraag & Antwoord

Webprogrammeren & scripting

[PHP] - Functie om map te legen doet raar

Anoniem
None
3 antwoorden
  • Ik heb een bestand "deleteattachments.php" dat altijd geinclude wordt om de attachments te verwijderen indien nodig. Het bestand ziet er als volgt uit:[code:1:2019b5d76e]<?php
    if (file_exists ("temp/mailclient/" . $aerypton [id])) {
    include ("functies/ftpconnect.php");
    // Ik ga ervan uit dat er geen submappen zijn, dit is normaal gezien ook niet mogelijk.
    ftp_chdir ($conn_id, "public_html/temp/mailclient/" . $aerypton [id]);

    $dir = opendir ("temp/mailclient/" . $aerypton [id] . "/");

    if (!empty ($dir)) {
    $files = ftp_nlist ($conn_id, ".");

    foreach ($files as $file) {
    ftp_delete ($conn_id, $file);
    }
    }

    ftp_rmdir ($conn_id, ".");

    include ("functies/ftpdisconnect.php");
    }
    ?>[/code:1:2019b5d76e]Normaal zou hij dan enkel de bestanden in die map mogen proberen te verwijderen als de map dir niet leeg is.

    Maar soms probeert hij het te legen als het al leeg is, dan krijg ik "Warning: Invalid argument supplied for foreach() in /home/…/deleteattachments.php on line 12".

    Ziet iemand toevallig een foutje in m'n pagina?

    Of, misschien beter, weet iemand hoe ik die fout kan verbergen zodat de gebruiker ze niet te zien krijgt. Ik weet dat je voor functies een "@" kan plaatsen voor de errors te verbergen, maar hoe zit het voor loops?
  • Je kan toch gewoon checken of $files leeg is of niet?
  • [quote:3e710d69cb="Bill Gates"]Je kan toch gewoon checken of $files leeg is of niet?[/quote:3e710d69cb]Bedoel je zo:[code:1:3e710d69cb] if (!empty ($files)) {
    foreach ($files as $file) {
    ftp_delete ($conn_id, $file);
    }
    }[/code:1:3e710d69cb]Ik wist niet dat het kon.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.