- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我使用 PHP 时(经常),我通常在 Windows 机器上工作,但是我(尝试)开发与平台无关的应用程序;一个主要问题是目录分隔符的使用。
正如许多人所知,在 Windows 环境中使用 PHP 执行任何文件系统工作时,您可以使用正斜杠代替反向斜杠,PHP 会在幕后对其进行排序。当使用字符串文字将路径传递到 fopen()
时,这一切都很好。管他呢;但是在检索路径时,可以是 __FILE__
或使用 realpath()
扩展,检索到的路径当然使用操作系统适当的斜杠。另外,我注意到尾部斜杠存在一些不一致的地方。一次或两次__DIR__
已附加一个(反斜杠)和 realpath()
太(我更喜欢尾部斜杠,但不是间歇性的)
这显然是字符串比较的问题,因为而不是这样做:
compare_somehow('path/to/file.php', __DIR__);
为了可靠性,我不得不去:
compare_somehow('path/to/file.php', rtrim(strtr(__DIR__, '\\', '/'), '/') . '/');
这看起来工作量很大。当然,我可以将它放入一个函数中;现在我的所有 OO 代码中都陷入了任意函数依赖的困境。
我知道 PHP 并不完美,需要进行调整,但肯定存在一些与平台无关的解决方法来强制文件系统命中检索正斜杠路径,或者至少是一种非侵入式的方式来引入类-用于此目的的独立函数。
摘要问题(s):
所有内容都使用正斜杠。即使主机操作系统分隔符是 #*&@
.
最佳答案
正如我所评论的,我真的不明白为什么你必须这样做(我对你正在解决的具体问题的快速描述感兴趣),但这里有一个可能的解决方案,使用 __FILE__
的输出作为一个例子:-
$path = str_replace('\\', '/', __FILE__);
无论操作系统返回什么*斜杠(我认为),这都会(应该?)工作。
不幸的是,除此之外,我不知道“一些神奇的(尽管可靠)解决方法、黑客攻击或其他方式强制 PHP 回退正斜杠文件系统路径,无论服务器操作系统如何”。我想它可以包装在一个辅助类中,但这仍然会给您的代码带来任意依赖性。
关于PHP目录分隔符,强制正斜杠;非侵入性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162042/
这是 Google 无法回答的问题。我正在为一款多人游戏使用 XMLHttpRequest 进行一些 HTTP“长轮询”。在 Chrome 中,这会导致选项卡始终处于“加载中”状态:(1) 标签中的图
我是一名优秀的程序员,十分优秀!