Pergunta

Eu tenho uma pasta \folder\ acima do webroot que contém .php, .inc, .dat arquivos

  • a .php pode acessar o .inc sem problemas

  • mas quando o .inc tenta acessar o .dat usando fopen('mydat.dat', "rb"); dá um erro que não consegue encontrar mydat.dat lado de dentro \folder\myinc.inc

Claro que não pode encontrar desde .inc é um arquivo não uma pasta. Por que o PHP está tratando isso como tal?

Qualquer idéia por que o PHP está tentando encontrar o .dat dentro de .inc?

ou qualquer outra alternativa para fopen($filename, "rb")?

Foi útil?

Solução

Depois de ler seus comentários, acho que você espera que o FOPEN use o Incluir_Path.

O FOPEN () não usa o Incluir_Path por padrão (ao contrário do INCLUDE). É uma opção. Veja o manual.http://www.php.net/manual/en/function.fopen.php

Outras dicas

Aprenda o básico do sistema de arquivos. Seu diretório de trabalho ainda está no Webroot. Ele não altera para a pasta (embora pareça novas versões do PHP.

Enfim, se você quiser abrir um arquivo no mesmo diretório, dirname(__FILE__) é sempre para você

no myinc.inc que você pode usar

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

Parece que você tem safe_mode habilitado, mas não tem um valor para open_basedir, ou tenha o arquivo fora dele. Coloque o arquivo .dat em um caminho dado a essa opção.

Sempre que lidamos com arquivos no PHP. É necessário fornecer o caminho do caminho+o nome do arquivo para evitar esse tipo de erro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top