首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何清除php的gettext缓存而无需重启Apache或更改域?

如何清除php的gettext缓存而无需重启Apache或更改域?
EN

Stack Overflow用户
提问于 2012-11-29 20:17:01
回答 6查看 19.7K关注 0票数 23

这是来自php manual的一小段代码

代码语言:javascript
运行
复制
putenv('LC_ALL=zh_CN');
setlocale(LC_ALL, 'zh_CN');

bindtextdomain('domain', './locale');
textdomain('domain');

echo gettext('Hello');

这将输出在domain.mo文件中定义的 Apache ,但问题是只要Apache正在运行,gettext()总是返回缓存的结果。

如果我将Hello的翻译更改为domain.mo中的您好,它仍然会输出您好你好。

但是,可以通过将bindtextdomain()textdomain()domain参数更改为新名称来修复此问题。比如从"domain""domain2"。但每次更新.mo文件时,编辑php文件真的很痛苦。

有没有更好的方法来做这件事,比如删除一些文件夹或者调用一些php函数来完成这项工作?这样我就可以为这个目的写一个小脚本。

EN

Stack Overflow用户

发布于 2015-02-07 21:36:47

好的,在我的例子中,我需要通过执行php5.6-fpm-sp重新启动服务来重新启动phpfpm。

如果你使用的是php-fpm,你必须重新启动phpfpm才能清除gettext的缓存,重启apache2不起作用。

希望对别人是有用的。

票数 7
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13625659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档