2011-02-19 5 views
0

Vous vous demandez pourquoi php ne cesse de me dire qu'un fichier n'existe pas quand il le fait.comprendre les chemins relatifs et les chemins absolus

ceci est mon code et erreur

require_once('/book/admin/bin/class/db.class.php'); 

trace d'erreur et la pile

Warning: require_once(/book/admin/bin/class/db.class.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\book\forms\add.php on line 3 
    Call Stack 
    # Time Memory Function Location 
    1 0.1479 408440 {main}() ..\add.php:0 

Cela se produit beaucoup et je veux corriger ce problème gênant ne se reproduise. Y a-t-il un moyen de configurer mon serveur web pour lire depuis la racine du site comme je le demande aussi? Ou suis-je mal compris ce qui se passe.

Voici à quoi ressemble la structure de répertoire.

en utilisant un serveur WAMP

c:\wamp\www\book <- my site root 
c:\wamp\www\book\forms <- where add.php is located 
c:\wamp\www\book\admin\bin\class\db.class.php 

Pourquoi ne puis-je pas utiliser filepath comme "/ livre/bin /"

Merci, C

Répondre

1

Les chemins absolus sous Windows commence par une lettre de lecteur . Vous pouvez utiliser

require_once 'c:\wamp\www\book\admin\bin\class\db.class.php'; 

ou vous pouvez utiliser un chemin relatif.

Pour voir quel chemin vous "démarrez" à l'utilisation getcwd(); C'est probablement le répertoire où le script "démarre", par ex. le répertoire où index.php se trouve.

echo getcwd(); 

Vous pouvez avoir besoin de fichiers relatifs à ce répertoire.

Cependant, je vous suggère de définir une constante appelée APPLICATION_DIR ou quelque chose comme ça et de créer des liens à partir de cela.

define('APPLICATION_DIR', 'c:\wamp\www\book'); 
require_once APPLICATION_DIR.'\admin\bin\class\db.class.php'; 
Questions connexes