Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    ricavare path assoluto usabile

    Ciao,

    con la funzione dirname(__FILE__) oppure getcwd(), ho il percorso assoluto partendo dalla root. Ma non mi va bene, cioè voglio avere il percorso usabile come link.

    Se carico ad esempio un file root.php che contiene getcwd() su una cartella del server linux cioè

    www.miosito.com/cartella/

    il path risulta

    /web/htdocs/www.miosito.com/home/cartella

    a me serve www.miosito.com/cartella/

    come posso fare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Kups
    Registrato dal
    May 2013
    Messaggi
    20
    E' una funzioncina di utilità che ho avuto l'esigenza di scrivere tempo addietro, spero ti torni utile. (gira sia sotto win sia sotto linux)

    Codice PHP:
    <?php

    function currentUrlPath()
    {
        
    $s = ((isset($_SERVER['HTTPS']) && is_null($_SERVER['HTTPS']))? '' : (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's''');
        
    $port = ($_SERVER['SERVER_PORT'] == '80') ? '' : (':' $_SERVER['SERVER_PORT']);
        
    $path str_replace(implode('/'explode('\\\\\\'$_SERVER['DOCUMENT_ROOT'])), ''implode('/'explode('\\\\\', dirname(__FILE__))));

        return '
    http'. $s .'://'. $_SERVER['SERVER_NAME'] . $port . $path . '/';
    }


    echo 
    currentUrlPath();
        
    ?>

    Edit: modifico il post per ovviare a dei problemi di escape col forum che taglia alcuni caratteri.

  3. #3
    perfetto grazie!
    proprio quello che fa al caso mio

    solo una cosa. Alla fine del nome a dominio ci dovrebbe andare uno slash "/" che non c'è

    es: http://www.miodominio.com/cartella
    mi restituisce http://www.miodominio.comcartella senza "/"

    edit: no scusa ho risolto

    grazie

  4. #4
    Utente di HTML.it L'avatar di Kups
    Registrato dal
    May 2013
    Messaggi
    20
    concatena uno slash prima di $path e dovrebbe andare

    edit: lol, ok

  5. #5
    no purtroppo non va bene..

    io definisco il path in questo modo


    Codice PHP:
    $webRoot currentUrlPath();

    define('WEB_ROOT'$webRoot); 
    poi 'WEB_ROOT' me lo porto dietro nelle varie cartelle.

    quella funzione mi ritorna sempre la cartella dove si trova e poi le altre.

    Ad esempio:

    il file della funzione si trova in www.miosito.com/config/

    mi ritrovo con i link in un menu di navigazione nella cartella /admin/

    www.miosito.com/config/admin/

    anzichè

    www.miosito.com/admin/

    bisognerebbe togliere il precorso a /config

  6. #6
    Utente di HTML.it L'avatar di Kups
    Registrato dal
    May 2013
    Messaggi
    20
    Questo avviene perché nella funzione uso __FILE__.

    Nel tuo caso, devi sostituirlo a $_SERVER['SCRIPT_FILENAME'] che contiene il path assoluto dello script in esecuzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.