PHP大小写URL转换问题、求指教

更改下应用场景吧以便理解,我有一个文件名为(AppName.php),想通过require 'appname.php'去引入它,在Windows系统下没问题,可是Linux下就麻烦了不支持,我想知道这种情况我该如何转换这个未知的大小写问题。

阅读 3.8k
3 个回答

谢邀, appname => AppName,光从程序应该完全无法判断出来...除非能进行语义分析,但是这种毫无规律,例如我就要取ApPname,那再牛B的逻辑也判断不出来。除非是下面三种情况:

  1. 不区分大小写,一律转换为大写或者小写。

  2. 仅首字母大写,ucfirst就好了。

  3. 使用app_name这种有规律的命名法,可以转换成AppName。

======= 看你改了问题,我补充下吧 =======

正常开发都是要严格区分大小写的,不注意大小写的,部署到Linux就会产生问题。虽然可能有配置不区分大小写的方法,但是我觉得区分大小写还是有必要的。

======= 再补充下... =========

如果是mac的话,可以在磁盘管理,设置分区格式为区分大小写。默认是是不区分大小写的。现在开发,都是开了一个新分区(区分大小写),代码相关都放在里面。这样就不容易因为大小写的问题导致错误。或者可以用docker打包一个开发镜像,把代码目录挂载到容器,也不会有大小写的问题。

appname 是无法转换成AppName的 但是你可以通过app_name来转换的。系统内置是没有的。
小写字母下划线转大写驼峰

ucfirst(preg_replace_callback('/_([a-zA-Z])/', function ($match) {
        return strtoupper($match[1]);
    }, $str));

大写转小写带下划线 两个大写挨着只转一个

strtolower(trim(preg_replace("/[A-Z]/", "_\\0", str_replace("_","",$str)), "_"));

大写转小写带下划线 两个大写都转

strtolower(trim(preg_replace("/[A-Z]/", "_\\0", str), "_"));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题