PHPでパス文字列を作成しています。プラットフォーム(つまり、Linux、Windows、OS X)で動作する必要があります。私はこれをやっています:
$path = $someDirectory.'/'.$someFile;
$someDirectory
および$someFile
がさまざまなプラットフォームで実行時に正しくフォーマットされていると仮定します。これはLinuxとOS Xでうまく機能しますが、Windowsでは機能しません。問題は/
文字です。これはWindowsで動作すると思いました。
PHP関数またはWindowsの実行時にこれを\
に切り替えるその他のトリックがありますか?
編集: 明確にするために、結果の文字列は
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", "/");