2010-08-28 6 views
1

disons que nous avons un répertoire.en utilisant __FILE__ et en localisant le dossier racine en PHP? Comment puis-je faire cela?

projet/index.php

dans index.php

<?php 
require 'config/config.php'; 
echo ROOTPATH; 
?> 

projet/config/config.php

<?php 
define('ROOTPATH', rtrim(dirname(__FILE__), '\\/')); 
?> 

il retournera comme D: \ projet de stockage \ Web Projets \ www \ project \ config.

question:

  1. est-il un moyen facile d'obtenir le cheminracine sans puting sur le dossier du projet? (Je sais que c'est supid mais je ne peux pas supporter de demander)

  2. est-il un moyen d'obtenir le \ projet \ (dossier racine)? même si nous changeons l'emplacement du dossier?

Merci

Adam Ramadhan

ps * s'il vous plaît laisser un commentaire si vous ne comprenez pas ce que je veux dire.

+0

essayez-vous d'obtenir le dossier de script actuel? – nepsdotin

+0

yup. plus de bonnes manières? –

Répondre

1

realpath() votre ami .. ITs par exemple:

dans config/config.php

define('ROOTPATH', realpath(dirname(__FILE__).'/..')); 

Ou pour obtenir le dossier ci-dessus projet:

define('ROOTPATH', realpath(dirname(__FILE__).'/../..')); 

Je ne fonctionnent pas sur les fenêtres , mais si je me souviens realapath va trier les barres obliques pour vous ... si ce n'est pas le cas, utilisez la constante DIRECTORY_SEPARATOR pour la compatibilité.

+0

Que fait le/..? et sur les barres obliques '.DS.' .. '. DS.' ? et que diriez-vous de http://alanhogan.com/tips/php/directory-separator-not-necessary? –

+1

@adam: '..' est la norme pour naviguer dans un répertoire par rapport à son répertoire par exemple' realpath ('projects/somedir/..') 'sera le chemin absolu du système de fichiers' projets'. 'realpath' supprimera toutes les barres obliques supplémentaires dans le chemin ... la seule chose que vous * pourriez * devoir vous inquiéter est de savoir si vous utilisez \ ou/mais je pense que cela trie aussi - im juste pas 100% parce que sur ce parce que je ne travaille que sur les systèmes * nix. – prodigitalson

+0

Eh bien alors selon l'article juste utiliser des barres obliques :-) – prodigitalson

Questions connexes