Visualizzazione dei risultati da 1 a 8 su 8

Discussione: individuare la root da qualsiasi posizione del sito

  1. #1

    individuare la root da qualsiasi posizione del sito


    Si sa che un sito, a partire dalla root ha diverse cartelle e sottocartelle.
    Da alcune di queste cartelle o sottocartelle vorrei poter leggere o includere un file che si trova nella root.
    Quel che vorrei sapere è se da una posizione qualsiasi del sito è possibile individuare la root in modo da poter usare una unica funzione personale, richiamabile da qualsiasi posizione, che esegua un determinato script (esempio: leggerne il contenuto con opendir() ).
    In caso contrario sarei costretto a creare più funzioni che a seconda della posizione calcoli la posizione della root.
    Mi spiego
    codice:
    root
         cartella1
         cartella2
               cartella2a
               cartella2b
                    cartella2ba
                    cartella2bb
         cartella3
         ecc
    E' ovvio che
    se voglio riferirmo ad un file della root da cartella1, cartella2 o cartella3 il riferimento sarà ../file.php
    se voglio fare la stessa cosa da cartella2a il riferimento sarà ../../file.php
    se addirittura mi trovo in cartella2ba lo stesso riferimento sarà ../../../file.php

    Quel che vorrei sapere è se c'è un modo unico per posizionarmi da qualsiasi posizione alla root.

    Grazie

  2. #2
    Odio dire 'up' per ricaricare il post, perciò chiedo semplicemente: "Nesun suggerimento?"

  3. #3
    Usare una costante contenente il path creata quando sei nella root?

  4. #4
    Grazie fdisotto
    fintanto che dalla pagina chiamante debbo leggere una cartella nota va bene, è una mia abitudine indicare la cartella che mi interessa tramite
    $folder = "cartella2/"
    oppure
    $folder = "cartella2/cartella2a/"
    per scendere ad una sotto-cartella della cartella di lavoro
    oppure, se debbo risalire ad una cartella da una posizione nota
    $folder = "../../altra/"

    Il problema nasce quando non conosco la reale posizione dello script che si sta eseguendo e magari voglio risalire alla root senza saperne l'esatta distanza dalla cartella in cui si sta lavorando.
    Non so se sono stato chiaro

  5. #5
    In qualche modo dovrai pur sapere la posizione dello script, e comunque al massimo puoi usare un db e salvarci sempre il path. Altrimenti a come dici tu la vedo dura perché se non hai punti di riferimento è improbabile risalire fino alla root visto che non sai dove si trova, giusto?

  6. #6
    Originariamente inviato da fdisotto
    .......... Altrimenti a come dici tu la vedo dura perché se non hai punti di riferimento è improbabile risalire fino alla root visto che non sai dove si trova, giusto?
    Infatti è per questo che ho chiesto aiuto, sperando ci fosse un qualche modo per risalire alla root non conoscendone precisamente la posizione.
    Grazie comunque dell'interessamento

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    38
    Ciao micdas,

    prova a utilizzare il: $_SERVER['DOCUMENT_ROOT']
    fai una prova con <?= $_SERVER['DOCUMENT_ROOT']?>

    <? include("".$_SERVER['DOCUMENT_ROOT']."/includes.php"); ?>
    <? include("".$_SERVER['DOCUMENT_ROOT']."/cartella/includes.php"); ?>

    ecc...

    Ciao

  8. #8
    Ciao Chris_ws
    Grazie del suggerimento appena sperimentato.
    Tuttavia non mi funziona correttamente.
    Ho provato questo:
    Codice PHP:
    <?php
    echo "" $_SERVER['DOCUMENT_ROOT'] . "
    \n"
    ;
    $radice_root "" $_SERVER['DOCUMENT_ROOT'] . "/mikevba/nuovo";
    echo 
    $radice_root "
    \n"
    ;
    include (
    $radice_root "/error.php");
    ?>
    La semplice istruzione $_SERVER['DOCUMENT_ROOT'] in locale mi restituisce C:/AppServ/www on line /var/www/html
    Ora includendo la $radice_root /nome_file.php in locale riesco a vederne il contenuto, on line no, anche se non viene sollevato alcun errore

    Traendo le mie conclusioni penso di scrivere in un file di configurazione il percorso assoluto che punti alla cartella che voglio.
    Certo sarebbe stato più elegante e più universale fare come pensavo.
    Comunque grazie dei vostri suggerimenti e del vostro impegno.

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 © 2014 vBulletin Solutions, Inc. All rights reserved.