什么设置导致require_once路径区分大小写?

4
在我的本地环境中,我使用require_once publiccontroller.php,它会加载publicController.php。但是,当我在HostGator上进行生产时,它会失败,因为它没有松散地要求/包含文件。这是PHP还是Apache的问题?我需要我的环境镜像,所以我想改变我的本地设置以匹配我的生产服务器。

10
通常这是操作系统的问题。如果你在Windows上开发,路径可能不区分大小写。在几乎所有其他系统上,它们是区分大小写的。始终编写文件系统大小写敏感的代码。这是Windows的一个缺陷。 - Michael Berkowski
@MichaelBerkowski,您能否将其发布为答案,以便我可以标记它为正确的答案? - Ben
2个回答

11

文件系统的大小写敏感性不是PHP设置,而是特定于操作系统和文件系统。Windows文件系统往往不区分大小写,而大多数其他操作系统则更偏好区分大小写的文件系统。

由于您不能确定未来代码将在哪个操作系统上运行,因此建议始终编写针对区分大小写的文件系统的代码。

如果您当前正在Windows(或任何其他具有不区分大小写文件系统的操作系统)上开发,请返回您的代码并修复所有文件路径,以使用正确的大小写匹配磁盘上的名称。


0

大小写敏感是操作系统需要负责的问题。许多在 Windows 上开发 PHP 的开发人员通常会遇到这个问题。因为 Windows 不区分大小写,开发人员通常在开发过程中没有任何地址和文件名问题,但当他们将他们的 Web 应用程序移到 Linux 服务器时,隐藏的问题就出现了,因为 Linux 中的地址和文件名是不同的,例如 Myfile.phpmyfile.php 是有区别的。

所以,作为建议,请尽量在 Linux 上开发您的 Web 应用程序。它为 PHP 编程提供了一个更好、更稳定的环境。


5
更好的建议是要注意大小写敏感性,而不是开始在Linux环境下开发。 - Havelock
是的..这确实是一个好主意...但最好在Linux上开发程序...因为Web应用程序的最终服务器通常是Linux服务器...这只是一个建议... - hamedkh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接