Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
536 views
in Technique[技术] by (71.8m points)

locale - PHP: Where does setlocale's Value Come From?

I've noticed that PHP's str_word_count is behaving differently on the command line vs. on the web. The behavior seems to due to the default locale value in each environment. If I use setlocale to view the current locale (echo setlocale(LC_ALL, 0);), on the command line I get

C/en_US.UTF-8/C/C/C/C

Whereas on the web I get

C

So where do the various PHP SAPIs (cli, fpm, mod_php, etc.) get this default value from?

My presumption is that the weird looking C/en_US.UTF-8/C/C/C/C locale all six locale categories jammed up together, and that this is telling me LC_CTYPE=en_US.UTF-8 and the other categories are all set the C locale -- so putting my question another way: Why is does my php-fpm server have all its locale categories set to C by default, whereas my command line PHP has one locale set to en_US.UTF-8


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can set intl.default_locale in php.ini


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...