Visualizzazione risultati 1 fino 10 di 10
Like Tree1Likes
  • 1 Post By alemoppo

Discussione: [PHP]Estrarre nome directory precedente

  1. #1
    Guest

    Question [PHP]Estrarre nome directory precedente

    Salve gente,
    Come si potrebbe far si che, per esempio nel seguente caso dove io mi torvo a lavorare:
    miosito.it/nome%20cartella/1/
    Il nome della directory precedente (quello sottolineato) venga memorizzato in una variabile, avendo dunque:
    Codice PHP:
    $cartella="nome cartella";
    Thanks

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Hai provato con glob() o readdir() di ".."?

    Ciao!

  3. #3
    Guest

    Predefinito

    Ciao,
    Ricevo in output la seguente:
    Warning: readdir() expects parameter 1 to be resource, string given in C:\xampp\htdocs\Acchiappamente\layout_test.php on line 66

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    A me, modificando l'esempio della documentazione ufficiale:

    Codice PHP:
    <?php
    // Nota che l'operatore !== non è esistito fino alla versione 4.0.0-RC2
    if ($handle = opendir('..')) {
    echo
    "Handle della directory: $handle\n";
    echo
    "File:\n";

    /* Questa è la maniera corretta di eseguire un loop all'interno di una directory. */
    while (false !== ($file = readdir($handle))) {
    echo
    "$file\n";
    }
    closedir($handle);
    }
    ?>
    Elenca tutti i file della cartella superiore.
    Effettivamente però, nel tuo caso sarebbe meglio leggere soltanto le cartelle, quindi con la scandir(). Oppure se hai più cartelle dentro la cartella superiore, un altro modo (forse il migliore ?) sarebbe quello di utilizzare realpath() sul file attuale e lavorare sulla stringa ottenuta (o addirittura la costante __DIR__). Sta a te scegliere il metodo migliore per il tuo caso specifico.

    Ciao!
    Ultima modifica di alemoppo : 29-12-2014 alle ore 22.28.39

  5. #5
    Guest

    Predefinito

    Ciao e buon anno :D
    Anno nuovo ma stesso problema.
    Ho provato diversi approcci ma non sono ancora riuscito ad ottenere quello che desidero:
    miosito.it/nome%20cartella/1/

    Potresti spiegarmi meglio come faresti? Perché a me interessa unicamente nome cartella :/

  6. #6
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Per me una soluzione semplice è dividere il percorso attuale con explode in base al carattere '/'.
    Supponiamo che lo script venga eseguito e che la costante __DIR__ equivalga a '/membri/mathis/nome cartella/1/', con explode avresti un array: ['', 'membri', 'mathis', 'nome cartella', '1', ''].
    A questo punto ti basta prendere il 3 elemento a partire dall'ultimo elemento ( count(array) - 3 )

  7. #7
    Guest

    Predefinito

    Avevo provato una soluzione simile ma non ricevevo il risultato voluto.
    Codice PHP:
    $exploded=explode("/",__DIR__);
    $last=count($bla)-1;
    echo
    $exploded[$last];
    --EDIT--
    Scusate, funziona.
    Solo che in locale la directory non è con "/" ma bensì "\" quindi è bastato modificare quello perché funzionasse.
    Ultima modifica di mathis : 02-01-2015 alle ore 17.00.03

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Dovrebbe essere sufficiente basename().

    Codice PHP:
    echo basename(__DIR__);
    Ciao!
    Ultima modifica di alemoppo : 02-01-2015 alle ore 18.25.17

  9. #9
    Guest

    Predefinito

    Grazie ma lo script che ho utilizzato mi è comodo perché posso sfruttarlo anche per eventuali cartelle madri/figlie.

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Eh infatti dipende molto da quel che devi fare
    Vabè, servirà a chi farà una ricerca.

    Ciao!
    mathis likes this.

Regole di scrittura

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