覆盖默认的 php 函数
我有一个脚本,其中 basename()
使用了 100-1000 秒的时间,我只是在想我们是否可以重写该函数,而不是在所有脚本中将函数名称更改为其他名称。
basename()
的问题是它不能很好地处理外语文件名。我在 php 网站 http://php.net/manual/en/function 上找到了一个.override-function.php 但它需要 PECL
还有其他替代方案吗?
I have script wherein basename()
is used 100-1000s of time, I was just thinking if we can override the function rather than changing the function name to something else in all scripts.
The problem with basename()
is that it doesnt works well with names of files in foreign languages. I found one on php site http://php.net/manual/en/function.override-function.php but it needs PECL
any other alternative?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用命名空间来覆盖现有的函数名称:
即,在 blarg 命名空间内对 basename() 的任何调用都将使用该函数的新版本。
You can use namespaces to override existing function names:
I.e., any call to basename() within the blarg namespace will use your new version of the function.
另一种选择是 runkit。但这在大多数服务器上不太可能启用。
An alternative would be runkit. But that's as unlikely to be enabled on most servers.
您可以在调用 basename 之前更改区域设置:
setlocale
You can change the locale before calling basename:
setlocale