2013-01-04 6 views
1

Je suis nouveau à codeigniter (et php en général) et je suis le tutoriel pour l'apprendre. suivant ce lien: http://ellislab.com/codeigniter/user-guide/tutorial/static_pages.htmlFichier de chemin relatif Codeigniter

dans le contrôleur, il vérifie si le fichier existe en utilisant

if (! file_exists('application/views/pages/'.$page.'.php')) 

Ma question est: ce script est en cours d'exécution de l'application/contrôleurs/pages.php est donc pas le chemin donné à file_exists par rapport au script en cours? c'est à dire qu'il doit pointer vers application/controllers/application/views/pages /'.$ page. '. php'.

Cependant ce n'est pas le cas et le chemin vérifie en fait les fichiers par rapport à la racine du chemin! Donc, est-ce php question ou codeigniter?

Merci.

Répondre

4

Tous les chemins sont relatifs au script de l'entrée (probablement index.php ou tout autre codeigniter utilisé).

Pour obtenir les chemins relatifs au script en cours, utilisez la constante __FILE__.

file_exists(dirname(__FILE__) . "/path/to/file.php"); 
+2

Ou utilisez immédiatement la constante '__DIR__'. – hakre

+1

En général, 'index.php' se trouve dans le même dossier que' application', c'est pourquoi 'file_exists '(' application/views/pages /'.$ page. '. Php')' fonctionne. Comme il peut être difficile, je préfère généralement lui donner un chemin absolu en utilisant 'file_exists (__ DIR__. 'Chemin/relatif/à/courant/php/fichier' 'comme suggéré par hakre –

+1

file_exists true si le chemin donné est un chemin de répertoire. il est préférable d'utiliser la fonction is_file() –