CakePHP覆盖DS

时间:2010-11-04 09:42:24

标签: javascript cakephp

我正在尝试覆盖DS以在我的Windows Dev机器中使用'/'而不是'\'。原因在于某些javascript,它正在使用cake的DS进行一些ajax调用。

例如:

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

这是一个问题,因为javascript将\作为转义字符,因此js变为

var data = 'image\';

对此表示赞赏,谢谢!

编辑: 我可能应该在这个= /

上发布更多信息

我正在尝试在我的Windows机器上本地开发应用程序。现在,Web应用程序假设开发人员在linux上运行,所以以前的开发人员都在使用php DS。当然,我可以将这些DS改成/可能不会伤害任何人。但对于具有数千个文件的应用程序,最好不要这样做,所以我想考虑为我自己的本地工作副本覆盖DS。上面的例子只是一个小小的片段,展示了我想要实现的目标,而不是实际使用的代码。

但是没关系,我将只使用ZWAMP并继续前行。感谢回复:D

4 个答案:

答案 0 :(得分:7)

你不应该这样做。 DS是目录分隔符,必须保留原样,即目录分隔符。在Unix上是'/',在MS机器上是'\'。

在AJAX调用中,始终使用'/'。您不需要任何变量:URL中的分隔符始终为“/”,您只需将其键入字符串文字即可。 (即使您的网址以file:/// ...开头)

JS使用PHP的DS是什么?这对我没有意义。

答案 1 :(得分:2)

实际上,您可以安全地将DS定义为'/'。 Windows仍然会识别它。例如,窗口会将c:/windows/system视为c:\windows\system。如果你写c:\windows/system,即使是Windows也会识别。

因此,请从您的app / webroot / index.php中替换DS定义:

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

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

答案 2 :(得分:0)

DIRECTORY_SEPARATOR的DS简写形式,它是PHP中的预定义常量。这意味着PHP环境为你设置了它,所以如果你在windows中,那么如果你的代码在* nix环境下运行那么它将是'\'然后它将是'/'。

另外值得一看以下论坛对话:

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

答案 3 :(得分:0)

值得尝试\\