[PHP] Barra de diret贸rio para plataforma cruzada

Ol谩 CoderZ,

脌s vezes precisamos deixar nossos scripts / c贸digos dispon铆veis e funcionam em todas as plataformas (Unix, Windows, … etc). Mas para fazer isso, precisamos considerar a diferen莽a entre essas plataformas. Claro que existem muitas diferen莽as, mas hoje vamos falar sobre uma delas. Essa 茅 a barra de diret贸rio ou separador de diret贸rio, como voc锚 quiser.

Voc锚 deve saber que o Windows usa () como barra / separador de diret贸rio, enquanto o Linux usa (/). Ent茫o, o que vamos fazer ?

脡 mais simples como voc锚 pensa. Hoje vou falar sobre (2) m茅todo para conseguir isso. E no final eu vou te contar um pequeno segredo.

1陋 O m茅todo da moda antiga:

if (strtoupper(substr(PHP_OS,0,3)) == 'WIN') {
// Windows
define
('SLASH', '\');

} else {
// Linux/Unix
define
('SLASH', '/');
}

Ent茫o usamos a constante SLASH como separador assim:

$file = 'folder_1'.SLASH.'folder_2'.SLASH.'file.php';

2陋 O m茅todo oficial:

Usando a constante predefinida (DIRECTORY_SEPARATOR). Como isso :

$file = 'folder_1'.DIRECTORY_SEPARATOR.'folder_2'.DIRECTORY_SEPARATOR.'file.php';

No final, eu quero te contar um pequeno segredo.

O segredo que revelou:

Sim, o Windows usa (), mas n茫o importa se voc锚 usar (/). Ent茫o voc锚 pode us谩-lo assim:

$file = 'folder_1/folder_2/file.php';

E vai funcionar bem.

Boa sorte.