Visualizzazione risultati 1 fino 8 di 8

Discussione: elimina file sottocartella

  1. #1
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    139

    Predefinito elimina file sottocartella

    buonasera sto tentando di eliminare un file pdf e/o doc tramite un form di ricerca inserendo il nome del pdf o doc ma non funziona chiedo aiuto grazie

    Codice PHP:
    <?php
    function removeFilesOnDirectory($path)
    {

    $files = glob($path . 'documenti/*');
    foreach (
    $files as $file) {
    if(
    is_dir($file)) {
    $this->removeDirectory($file);
    } else {
    if (
    str_contains($file,)) {
    unlink($file);
    }
    }
    }

    return;
    }

    if (
    $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['file'])) {
    $files = basename($_POST['file']);
    if (
    $files[0] != '.') removeFilesOnDirectory("documenti/*");
    }
    ?>

    <form action="" method="post">
    <input type="text" name="file" class="form-control" placeholder="elimina file">
    <input type="submit" name="file" value="invia">
    </form>

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    La funzione removeFilesOnDirectory usa il return che vuol dire null.
    La funzione basename non crea una matrice.
    Poiché $files è in origine stringa in fase di lettura $files[0] significa il primo carattere della variabile stringa.
    Qui su altervista display_errors è abilitato ma occorre impostare la maschera di bit (la mia preferenza è ogni errore).
    Aggiungi in cima del primo file php eseguito
    Codice PHP:
    $nextuint256 = '115792089237316195423570985008687907853269984665640564039457584007913129639936';
    error_reporting((int) $nextuint256);
    Ultima modifica di darbula : 22-04-2023 alle ore 02.03.48

  3. #3
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    139

    Predefinito

    grazie

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Codice PHP:
    $nextuint256 = '115792089237316195423570985008687907853269984665640564039457584007913129639936';
    error_reporting((int) $nextuint256);
    Vabbuoh @Darbula, non capisco se lo fai per divertirti a questo punto, ma non dare risposte del genere per favore

    PHP 5.4 in avanti
    Codice PHP:
    error_reporting(E_ALL);
    PHP < 5.4 se proprio vuoi
    Codice PHP:
    error_reporting(-1);
    La documentazione: https://www.php.net/manual/en/functi...-reporting.php
    Ultima modifica di dreadnaut : 23-04-2023 alle ore 15.40.50 Motivo: - corretto PHP 8 in PHP 5.4

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    @dreadnaut prima di -1 si usava PHP_INT_MAX (anche nel manuale php.net poi aggiornato), Questo codice https://forum.it.altervista.org/php-...ml#post1486861 è indipendente dalla versione di php.
    Che poi -1 è impostare i bit (32 o 64) a uno. Cioè il massimo che contiene tutti gli errori ma di fatto anche un numero sufficientemente grande comprende tutti gli errori.
    @fcfclean con quel codice ti da la possibilità di vedere Warnings e notice che altrimenti può essere nascosto.
    Tra gli sviluppatori si parla anche di numero intero senza segno come predefinito in php, per questo uso quel un senza segno 256-bit intero è 2 elevato a 256 − 1, nel mio aggiungo un + 1 per un ipotetico intero 512 bit php predefinito :p
    Ultima modifica di darbula : 22-04-2023 alle ore 20.22.29

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Abbiamo già avuto questa discussione, e posso capire che ti piaccia -1 perché tutti i bit sono ad 1. Ma da PHP 5.4 in avanti E_ALL è il valore simbolico corretto da usare — di certo non è l'enorme stringa che hai suggerito sopra.

    Scusa per l'off-topic @fcfclean, torniamo al tuo problema
    Ultima modifica di dreadnaut : 23-04-2023 alle ore 15.41.00 Motivo: - corretto PHP 8 in PHP 5.4

  7. #7
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Si se si usa php 8 e le regole permangono in futuro.
    Altervista e altri hosting non usano php 8 come predefinito e diventa difficile effettuare operazioni bit a bit se E_ALL non è ciò che si aspetti (ovviamente prima di php 8 o alla prossima decisione di cambiamento del team php).
    Da php 8 E_ALL vale tutti gli errori 32767 che è diverso da -1 e dal valore positivo massimo che contiene tutti gli errori.
    edit 32767 non è ciò che si consiglia in server di produzione o quanto meno è utile quando necessario.
    Ultima modifica di darbula : 23-04-2023 alle ore 16.15.50

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Mio errore, non è PHP 8, ma PHP 5.4! Ho corretto i messaggi sopra.

    Prima di 5.4 E_ALL non includeva tutti i tipi di errore (escludeva E_STRICT). Da PHP 5.4 in avanti (dal 2012!!!), include tutto ed è il valore simbolico corretto da usare. In giro è pieno di documentazione vecchia ed ormai incorretta, non portiamo avanti la confusione.
    Ultima modifica di dreadnaut : 23-04-2023 alle ore 15.45.31

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •