[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.

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';

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.