Eu tenho essa estrutura de pastas no meu projeto PHP. (isso é mostrado em eclips)
-MySystem
+Code
+Data_Access
-Public_HTML
+css
+js
+Templates
-resources
Quando eu tento este código
echo $_SERVER['DOCUMENT_ROOT']
saída é
D: / espaço de trabalho
Como posso obter o caminho para RootDirectory do sistema ( MySystem
), sem codificar o nome da pasta?
__DIR__
. É relativo ao próprio arquivo, portanto, se estiver em um include, dentro de um subdiretório, não retornará apenas o seu diretório raiz.Quando você diz isso
contém este caminho:
Então
D:
é isso que você está procurando, não é? Nesse caso, você pode explodir a string por barras e retornar a primeira:Isso produzirá o diretório raiz do servidor.
Atualização: Quando você usa a constante em
DIRECTORY_SEPARATOR
vez da barra codificada ('/'
), este código também funciona no Windows.UPDATE 2: A
$_SERVER
variável global não está sempre disponível. Na linha de comando (CLI), por exemplo. Portanto, você deve usar em__DIR__
vez de$_SERVER['DOCUMENT_ROOT']
.__DIR__
retorna o caminho do próprio arquivo php.fonte
__DIR__
vez de$_SERVER['DOCUMENT_ROOT']
.use a função PHP:
getcwd()
Obtém o diretório de trabalho atual.
fonte
Eu quero apontar como o Wordpress lida com isso:
Como o Wordpress é muito usado em toda a web e também funciona bem localmente, confio muito neste método.
fonte
podes tentar:
$_SERVER['PATH_TRANSLATED']
citar:
fonte: php.net/manual
fonte
fonte
Resumo
Este exemplo assume que você sempre sabe onde está a pasta raiz do apache '/ var / www /' e está tentando encontrar o próximo caminho de pasta (por exemplo, '/ var / www / my_website_folder'). Também funciona a partir de um script ou do navegador da web, por isso existe um código adicional.
Código PHP7
Exemplo
Resultado:
Detalhes:
Basicamente, primeiro tenta obter DOCUMENT_ROOT se ele contém '/ var / www /' e então usa-o, senão obtém o diretório atual (que existe dentro do projeto) e obtém o próximo valor do caminho baseado na contagem do caminho $ root. Nota: instruções rtrim adicionadas para garantir que o caminho retorne terminando com '/' em todos os casos. Ele não verifica se precisa ser maior que / var / www /, mas também pode retornar / var / www / como uma resposta possível.
fonte