Ответ 1
Попробуйте этот
DIRECTORY_SEPARATOR
$patch = $somePath. DIRECTORY_SEPARATOR .$someFile
или вы можете определить свои
PHP_OS == "Windows" ||
PHP_OS == "WINNT" ? define("SEPARATOR", "\\") : define("SEPARATOR", "/");
Я строю строку пути в PHP. Мне нужно, чтобы он работал на разных платформах (например, Linux, Windows, OS X). Я делаю это:
$path = $someDirectory.'/'.$someFile;
Предположим, что $someDirectory
и $someFile
отформатированы правильно во время выполнения на разных платформах. Это прекрасно работает на Linux и OS X, но не на Windows. Проблема заключается в символе /
, который, как я думал, будет работать для Windows.
Есть ли функция PHP или какой-либо другой трюк, чтобы переключить это на \
во время выполнения в Windows?
EDIT: Чтобы быть ясным, результирующая строка
c:\Program Files (x86)\Sitefusion\Sitefusion.org\Defaults\pref/user.preferences
в Windows. Очевидно, что сочетание косой черты сбивает Windows.
Попробуйте этот
DIRECTORY_SEPARATOR
$patch = $somePath. DIRECTORY_SEPARATOR .$someFile
или вы можете определить свои
PHP_OS == "Windows" ||
PHP_OS == "WINNT" ? define("SEPARATOR", "\\") : define("SEPARATOR", "/");
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
define("SEPARATOR", "\\");
else
define("SEPARATOR", "/");