2010-11-04 102 views
2

我想覆蓋DS在Windows開發機器中使用'/'而不是'\'。這是因爲某些javascript,它使用蛋糕的DS來進行一些Ajax調用。CakePHP覆蓋DS

例如:

var data = '<?php echo 'image' . DS ?>'; 

這是因爲JavaScript邁出\作爲轉義字符的問題,所以JS變得

var data = 'image\'; 

對此有何光表示讚賞,感謝的!

編輯: 我也許應該讓出這個更多信息=/

我想我的Windows機器上本地開發的應用程序。現在,Web應用程序假設開發人員在Linux上運行,因此以前的開發人員都在使用PHP DS。當然,我可以將這些DS更改爲/可能不會傷害任何人。但對於具有一千個文件的應用程序,最好不要這樣做,所以我正在考慮將DS重寫爲我自己的本地工作副本。上面的例子只是一個小小的片段,用於展示我想要實現的內容,而不是實際使用的代碼。

但是沒關係,我只會使用ZWAMP並在我的路上。感謝您的回覆:D

+0

有你在你的例子來使用DS一些特殊的原因嗎? – dhofstet 2010-11-04 10:27:49

+0

在URL中使用'DS'是錯誤的,應該被視爲一個錯誤。因此你應該修復它。用一個體面的編輯器/ IDE不應該太難。 – deceze 2010-11-08 01:46:35

+0

我面臨同樣的問題。我有兩個模塊,一個DS工作,另一個不工作。他們也是非常相似的模塊。但是,使用正斜槓看起來更「正確」,因爲它始終是它在URL中傾斜的方式。仍然很奇怪... – nicorellius 2012-03-09 23:30:13

回答

0

這可能是值得嘗試\\

7

您不應該那樣做。 DS是目錄分隔符,它必須保持原樣,即目錄分隔符。 Unix上是'/',MS機上是'\'。

在AJAX調用中,始終使用'/'。您不需要任何變量:URL中的分隔符總是'/',您可以將其鍵入字符串文字中。 (即使您的URL以file:///開頭)

JS使用PHP的DS?這對我沒有意義。

+2

+1。 'var data ='urls/always/use/forward/slashes/on/tinternet';' – deizel 2010-11-04 17:14:52

2

其實你可以安全地將DS定義爲'/'。 Windows仍然會識別它。例如,Windows將視爲c:/windows/systemc:\windows\system相同。即使窗口會識別你是否寫c:\windows/system。在DIRECTORY_SEPARATOR的

if (!defined('DS')) { 
    define('DS', DIRECTORY_SEPARATOR); 
} 

if (!defined('DS')) { 
    define('DS', '/'); 
} 
+1

這是真的,但並不真正與解決問題有關,這實際上是誤解文件系統中的路徑分隔符與網址。 – 2010-11-04 12:11:20

0

的DS短形式是在PHP中的預定義的常量:

所以,從替代DS定義您的應用程序/根目錄/ index.php文件。這意味着PHP environmet會爲你設置它,所以如果你在windows中,那麼如果你的代碼在* nix環境中運行,它將是'\',那麼它將是'/'。

另外值得一有以下論壇的對話看看還有:

http://www.talkphp.com/general/2487-directory_separator-not-necessary.html