2013-02-07 88 views
4

試圖在我的Windows操作系統上設置一個PHP網站。 PHP代碼,我從別人拿到了像在Windows路徑上的PHP出現反斜槓

$base_path = realpath('./../').'/'; 

線這與像c:\abc\xyz/

我需要什麼樣的設置在Windows上,迫使它來與/做字符串結束。我讀了DIRECTORY_SEPERATOR,但是有很多地方我需要擔心,因此如果我可以這樣做,那麼真正的路徑出現/這對我很有幫助。

回答

2

只是做了您擁有的字符串替換:

$base_path = realpath('./../') . '/'; 
$base_path_mod = str_replace('\\', '/', $base_path); 
3

反斜槓是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); 
2

蒂莫西答案的一個變體,它使用DIRECTORY_SEPARATOR常數而不是條件來簡化函數。

function platformSlashes($path) { 
    return str_replace('/', DIRECTORY_SEPARATOR, $path); 
} 

$path = "/some/path/here"; 
echo platformSlashes($path); 
+0

最簡單的工作解決方案我必須添加 –

相關問題