Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
O que ganharei lendo este artigo?
Domínio de Escopo: Aprenderás que diretórios (pastas) e subdiretórios mudam a percepção do PHP.
Segurança com Constantes: Aprenderás a "travar" o caminho real do projeto para não depender tanto de onde o script está rodando.
Warning: fopen(leitura.txt): Failed to open stream: No such file or directory in /caminho/da/mente/do/ledor/inteligencia.php on line 0[ Hits: 1.458 ]
Por: Buckminster em 28/03/2026
Estratégia do "Ponto de Entrada Único", do conceito de estratégia, em grego strateegia, em latim strategi, em francês stratégie... os senhores estão anotando?
<?php
// Este arquivo autoload.php fica na RAIZ do projeto|site|aplicativo...
// __DIR__ aqui SEMPRE serah a raiz.
// dirname(__DIR__) recua um nivel na estrutura de pastas (Funcao Nativa).
// Exemplo: dirname(__DIR__) . DIRECTORY_SEPARATOR . "autoload.php";
// __DIR__ . DIRECTORY_SEPARATOR; = C:\Apache24\htdocs\pasta1\pasta2\
// Windows - RAIZ_SIS (ou PATH_ROOT) = C:\Apache24\htdocs\pasta1\pasta2\
// Linux - RAIZ_SIS (ou PATH_ROOT) = /opt/apache24/htdocs/pasta1/pasta2/
// Define a URL base do site:
// define('URL_BASE', 'http://localhost/pasta1/pasta2');
// PATH_ROOT: Caminho absoluto no disco (para utilizar com file_put_contents, require, include, etc).
// URL_BASE: Caminho do navegador (para utilizar com href, src de imagens, etc).
// DIRECTORY_SEPARATOR Windows = \
// DIRECTORY_SEPARATOR Linux|MacOS = /
if (!defined('RAIZ_SIS')) {
define('RAIZ_SIS', __DIR__ . DIRECTORY_SEPARATOR);
}
if (!defined('PASTA_API')) {
define('PASTA_API', RAIZ_SIS . 'api' . DIRECTORY_SEPARATOR);
}
Aproveitamos e já definimos, também, uma constante para o diretório api chamada PASTA_API, cujo caminho é /opt/apache24/htdocs/pasta1/pasta2/api/.require_once __DIR__ . DIRECTORY_SEPARATOR . 'autoload.php'; require_once PASTA_API . 'proc_criar.php';
$arquivoCursos = RAIZ_SIS . 'cursos.txt'; $arquivoBkpExtra = $pastaExtra . DIRECTORY_SEPARATOR . 'cursos_bkp_extra.txt';
require_once __DIR__ . DIRECTORY_SEPARATOR . "autoload.php";
$arquivoCursos = RAIZ_SIS . 'cursos.txt';
$pastaExtra = RAIZ_SIS . 'copiados';
$arquivoBkpExtra = $pastaExtra . DIRECTORY_SEPARATOR . 'cursos_bkp_extra.txt';
die("Caminho Real: " . realpath($arquivoBkpExtra));require_once __DIR__ . DIRECTORY_SEPARATOR . "autoload.php";
$arquivoCursos = RAIZ_SIS . 'cursos.txt';
die("Caminho Real: " . realpath($arquivoCursos));
$pastaExtra = RAIZ_SIS . 'copiados';
$arquivoBkpExtra = $pastaExtra . DIRECTORY_SEPARATOR . 'cursos_bkp_extra.txt';Resolver problemas de Internet
Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze
Squid - Entendendo um pouco as configurações
Customizar a Instalação do Linux Debian com Preseed
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Manipulação de arquivos com PHP
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Upload de imagens com criação de thumbnails em PHP
Organizando fotos de camêra digital
PEAGLE: Serviço Web de busca indexada em seu servidor local
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Replicação SYSVOL no Samba 4 com Syncthing
Samba 4 com Replicação e LDAP Seguro (LDAPS/TLS)
Configurando o Cairo Dock individualmente em ambientes diferentes na mesma maquina
Calculadoras online gratuitas para o dia a dia do usuário Linux
Metafísica e espiritualidade funciona de verdade! Comprovação pessoal (3)
Isso acontece quando tento ajudar alguém (2)
Corrijindo o erro em println na linguagem C (4)
(CLIPPER) Rodando o mesmo código tanto no Windows quanto no Linux (4)









