Lendo um arquivo .dat como "rb" leia binário
Pergunta
Eu tenho uma pasta \folder\
acima do webroot que contém .php
, .inc
, .dat
arquivos
a
.php
pode acessar o.inc
sem problemasmas quando o
.inc
tenta acessar o.dat
usandofopen('mydat.dat', "rb");
dá um erro que não consegue encontrarmydat.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")
?
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.