2009-10-09 5 views
0

Je travaille sur un site ici où j'inclus des parties du site qui sont appelées à plusieurs endroits dans son sous-répertoire. J'ai créé un fichier dans ce répertoire et essayé de l'inclure dans un fichier, mais pour une raison quelconque, il ne fonctionne pas. Voici le code qui se trouve dans ce fichier.Fichier PHP non trouvé pour require_once, les autres sont dans le même répertoire

<?php 

require_once("a_file.php"); //this file loads 
require_once("another_file.php"); //so does this one 
require_once("problem_file.php"); //this one does not. 

echo foo('I exist'); 

?> 

et le code du fichier introuvable.

<?php 

function foo($string) { 
if ($string) { 
    return $string; 
    } 
} 

?> 

L'orthographe du fichier a été vérifiée comme étant correcte dans le fichier avec le require et le fichier appelé. Le chemin d'inclusion dans le fichier .htaccess est correct (sinon aucun des fichiers requis ne serait chargé sans que le chemin d'accès complet ne soit spécifié.) Le message d'erreur est "Impossible d'ouvrir le flux: aucun fichier ou répertoire" Toutes les autorisations sont les mêmes fichiers dans le répertoire include.

quelqu'un at-il couru dans cette question?

+0

Essayez de faire un fichier_exists sur tous les fichiers et voir si le fichier de problème renvoie true ou false. –

+0

revient comme faux, mais l'orthographe est correcte, le fichier est dans le dossier que tous les autres fichiers sont, et ils retournent tous vrai. C'est comme si PHP ne le voyait pas sélectivement pour une raison inconnue. – canadiancreed

Répondre

2

avez-vous une erreur dans le error_log? Il se pourrait que le troisième fichier a une

plus require_once qui ne sont pas trouvés.

Vous pouvez essayer d'utiliser $_SERVER['DOCUMENT_ROOT'] pour obtenir votre répertoire racine et l'utiliser pour vos besoins:

+0

Cela aurait pu aider à montrer que oui. Message original mis à jour. L'utilisation de $ _SERVER ['DOCUMENT_ROOT'] fonctionnerait, mais cela n'explique pas pourquoi les deux autres précédents fonctionnent comme prévu, ce qui est le mystère. Si c'était un problème avec le chemin d'inclusion de htaccess, tout devrait échouer? – canadiancreed

0

Un moyen rapide de savoir si cela venait du contenu du fichier serait de le coller dans le fichier principal.

Si ce test ne donne rien, assurez-vous que PHP a suffisamment d'autorisations pour lire le fichier concerné.

0

Est-il raisonnable de supposer que le fichier réel qui ne sera pas inclus est et non appelé fichier_problème.php? Si tel est le cas, votre nom de fichier contient peut-être des caractères (comme des espaces) qui doivent être échappés.

+0

Vous avez raison, mais le fichier est configuré comme indiqué, alias deux mots avec un _ les séparant. Pas d'espaces ou d'autres caractères spéciaux. – canadiancreed

Questions connexes