项目遇到一个问题,不同的服务器运行结果不同.
究其原因, 是因为使用了和locale相关的一些函数, 并且服务器locale不同所致, 总结了这些函数如下:
字符串相关:
| strtoupper | 转换大写 |
| strtolower | 转换小写 |
| ucfirst | 首字大写 |
| sprintf | 其中一部分格式化有关 |
| ctype_alpha | 检测是否全字母 |
| ctype_alnum | 检测是否全数字 |
| ctype_cntrl | 检测是否全控制字符 |
| ctype_upper | 检测是否全大写 |
| ctype_lower | 检测是否全小写 |
日期相关:
| gmstrftime | 根据区域设置格式化 GMT/UTC 时间/日期 |
| strftime | 根据区域设置格式化本地时间/日期 |
| strptime | 处理strftime返回的时间为数组 |
货币相关:
| money_format | 把数字以货币格式格式化 |
最后就是locale相关函数:
| setlocale | 设置local |
| localeconv | 获得数字相关的locale信息 |
做为一个国内的PHPer来说, 难免会遇到很多要和locale相关的问题, 这个时候,最好使用mb_*系列函数. 明确指出相关的字符集, 从而避免这些问题.