PHP __FILE__在从OSX主机装载的Linux VM文件中返回反斜杠


PHP __FILE__ returns backslashes in Linux VM file mounted from OSX Host

我从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__);