Как определить DIRECTORY_SEPARATOR для платформ Windows и Linux?

Теперь я создаю небольшое PHP-приложение, здесь у меня проблема с использованием пути к файлу, потому что в Windows это расположение типа C:\Some\Location\index, но в Linux /www/app/index, поэтому, когда я определяю путь, используя этот /, но когда приложение запустить в оконном аппарате это должно быть проблемой для этого /.

Итак, здесь я хочу определить DIRECTORY_SEPARATOR как платформу Windows, так и Linux.

Ответ 1

PHP принимает как \, так и / как допустимые разделители путей во всех ОС. Поэтому просто используйте / в своем коде

Ответ 2

Для удобства вы можете написать определение более короткой константы:

DEFINE('DS', DIRECTORY_SEPARATOR); 

а затем напишите свой путь как:

$path = 'www'.DS.'app'.DS.'index'; 

Или я не понимаю ваш вопрос?

Ответ 3

См. Предопределенные константы PHP

Возможно, он уже определен в вашем script, попробуйте повторить DIRECTORY_SEPARATOR, посмотрите, имеет ли оно какое-либо значение

Ответ 4

PHP понимает "\" и "/" как разделители путей, независимо от того, в какой системе вы находитесь. Я предпочитаю использовать '/' (путь unix) во всем моем коде. Когда вы находитесь в окне окна, и вам необходимо предоставить полный путь к окнам /DOS, у меня будет эта простая, неразрушающая функция

function dosPath($path){
    return str_replace('/', '\\', $path);
}

Пример:

$drive = 'C:';
$path = '/tmp/uploads';

echo dosPath($drive.$path);
echo dosPath($path);

Ответ 5

В большинстве случаев Windows принимает косые черты, поэтому вы можете просто использовать их. Вы даже можете использовать смесь, и она не будет жаловаться.

Убедитесь, что пакет unit-test также распространяется на Linux, но!