我正在尝试覆盖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
答案 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)
值得尝试\\