Question

J'ai un \folder\ dossier au-dessus du Webroot qui contient .php, .inc, fichiers .dat

  • le .php peut accéder au .inc aucun problème

  • mais quand le .inc tente d'accéder au .dat en utilisant fopen('mydat.dat', "rb"); donne une erreur qu'il ne peut pas trouver mydat.dat dans \folder\myinc.inc

Bien sûr, il ne peut pas trouver depuis .inc est un fichier pas un dossier. Pourquoi php comme tel traite?

Toutes les idées pourquoi php essaie de trouver le .dat dans le .inc?

ou toute autre alternative à fopen($filename, "rb")?

Était-ce utile?

La solution

Après avoir lu vos commentaires, je pense que vous attendez d'utiliser fopen include_path.

fopen () n'utilise pas le include_path par défaut (contrairement à inclure). Il est une option. Consultez le manuel. http://www.php.net/manual/en/function.fopen. php

Autres conseils

En savoir bases du système de fichiers. votre répertoire de travail est encore dans le Webroot. il ne marche pas changer dans le dossier \ \ (bien qu'il semble nouvelles versions de PHP ne regardez les fichiers dans l'emplacement du fichier en cours).

Quoi qu'il en soit, si vous voulez ouvrir un fichier dans le même répertoire, dirname(__FILE__) est toujours pour vous

dans le myinc.inc vous pouvez utiliser

fopen(dirname(__FILE__).'/mydat.dat', "rb");

On dirait que vous avez safe_mode activé, mais n'ont pas de valeur pour open_basedir , ou avoir le fichier à l'extérieur. Placez le fichier .dat dans un chemin donné à cette option.

Chaque fois que nous traitons avec des fichiers en php. Il est nécessaire de donner chemin + nom de fichier pour éviter ce type d'erreurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top