2010-03-27 152 views
2

我得到這個代碼問題從轉換路徑字符串 「/」, 「」

$ =的current_path str_replace函數( '\', '/',GETCWD()); // c:// xampp/htdoc

爲什麼它無法在目錄補丁中用'/'替換'\'?爲什麼是這個原因以及如何處理這個問題?

編輯此代碼用於返回路徑(或類似的東西)使用HTML標記基地。代替\作爲



$current_path = getcwd(); 

function get_basepath() { 
    global $current_path; 

    $current_path = str_replace('\\', '/', $current_path);      // C:\xampp\htdocs\php\gettingstarted 

    $cur_root = $_SERVER['HTTP_HOST'];    // localhost 
    $cur_docroot = $_SERVER['DOCUMENT_ROOT'];  // C:/xampp/htdocs/ 
    $cur_filepath = $_SERVER['SCRIPT_FILENAME']; // C:/xampp/htdocs/php/gettingstarted/index.php 
    $filepath = str_replace($cur_docroot, '', $current_path); 

    return "http://$cur_root/" . $filepath . "/";  // http://localhost/php/gettingstarted/index1.php 
} 

回答

7

由於\轉義下一個字符,您需要使用雙重\。 :)

$current_path = str_replace('\\', '/', getcwd()); 
+0

是的,我忘記了。非常感謝你 – justjoe 2010-03-27 13:16:33

1

使用\\

$current_path = str_replace('\\', '/', getcwd()); 

\用來逃避與特殊意義的字符。現在\本身是一個具有特殊含義的字符,因此可以用另一個\(如\\)來獲得字面值。

+0

嗨,謝謝你的回答。抱歉,我沒有選擇你 – justjoe 2010-03-27 13:16:14

1

這就是PHP string syntax問題,你根本不需要這個替換。

+0

謹慎解釋爲什麼我不需要這個替換? – justjoe 2010-03-27 13:18:19

+0

@justjoe關心解釋爲什麼你需要更換,如果一切正常,沒有更換? – 2010-03-27 13:28:07

+0

我想在我創建的頁面中使用html標籤庫。從getcwd()的返回值,我得到路徑目錄,然後我將字符串替換它與我的$ _SERVER ['DOCUMENT_ROOT'] ...在最終的結果將是 類似
HTTP://localhost/php/gettingstarted/ – justjoe 2010-03-27 14:01:34

1
$current_path = str_replace('\\', '/', getcwd()); //c://xampp/htdoc