我从OSX(Mavericks)主机在Fedora VM中运行LAMP。
VM安装文件夹中的文件是/media/sf_www/application/Some/Name/Space/FileName.php
<?php
namespace Some'Name'Space;
die(__FILE__);
?>
输出
/media/sf_www/application/Some''Name''Space''FileName.php
然而,我有相同的站点在linux主机上运行,并且相同的脚本输出所有带有斜杠的内容。
假设我不能触摸代码。
在php配置中,我可以在vm上做些什么来输出正向斜杠吗?
为什么会发生这种情况?OSX也应该使用正斜杠,即使它从VM主机中使用了目录分隔符。
编辑:只有通过Kohana加载文件时才会发生这种情况。如果我直接访问脚本(apache或CLI),则输出是正确的(正斜杠)
这是一种相关的问题:PHP目录分隔符,强制正斜杠;非侵入式
它给出的答案是,不,没有任何配置可以更改为只使用一种类型的斜杠。
为什么会发生这种事?我不知道,也许这是科哈纳的一个准bug。也许部分是PHP的错,因为将路径连接在一起的函数对它接受的斜杠有点太不可知了。
这有什么理由重要吗?如果你必须有一种斜线,你可以先对它做str_replace('''', '/', __FILE__);
。