試圖在我的Windows操作系統上設置一個PHP網站。 PHP代碼,我從別人拿到了像在Windows路徑上的PHP出現反斜槓
$base_path = realpath('./../').'/';
線這與像c:\abc\xyz/
我需要什麼樣的設置在Windows上,迫使它來與/
做字符串結束。我讀了DIRECTORY_SEPERATOR
,但是有很多地方我需要擔心,因此如果我可以這樣做,那麼真正的路徑出現/
這對我很有幫助。
試圖在我的Windows操作系統上設置一個PHP網站。 PHP代碼,我從別人拿到了像在Windows路徑上的PHP出現反斜槓
$base_path = realpath('./../').'/';
線這與像c:\abc\xyz/
我需要什麼樣的設置在Windows上,迫使它來與/
做字符串結束。我讀了DIRECTORY_SEPERATOR
,但是有很多地方我需要擔心,因此如果我可以這樣做,那麼真正的路徑出現/
這對我很有幫助。
只是做了您擁有的字符串替換:
$base_path = realpath('./../') . '/';
$base_path_mod = str_replace('\\', '/', $base_path);
反斜槓是Windows平臺上的目錄分隔符。但根據我的理解和經驗,在解決路徑問題時,您的PHP腳本仍然可以正斜槓工作。因此,您可以使用正斜槓編寫所有代碼,而不用擔心。前進/後退是非常重要的,如果你要顯示用戶的路徑,就像在安裝/安裝腳本中一樣(站點的大多數用戶不需要了解目錄結構,也不需要關心服務在哪個平臺上運行)。您可以創建一個顯示功能來識別平臺並根據需要替換斜槓,然後在顯示它們之前通過此路徑傳遞。以下是我建議的一個例子,雖然我沒有測試過它。
<?php
function platformSlashes($path) {
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$path = str_replace('/', '\\', $path);
}
return $path;
}
$path = "/some/path/here";
echo platformSlashes($path);
蒂莫西答案的一個變體,它使用DIRECTORY_SEPARATOR
常數而不是條件來簡化函數。
function platformSlashes($path) {
return str_replace('/', DIRECTORY_SEPARATOR, $path);
}
$path = "/some/path/here";
echo platformSlashes($path);
最簡單的工作解決方案我必須添加 –