Intereting Posts

Переопределить функцию php по умолчанию

У меня есть сценарий, в котором basename() используется 100-1000 секунд, я просто думал, что если мы можем переопределить функцию, а не менять имя функции на что-то еще во всех сценариях.

Проблема с basename() заключается в том, что она не работает хорошо с именами файлов на иностранных языках. Я нашел его на php-сайте http://php.net/manual/en/function.override-function.php, но ему нужна PECL любая другая альтернатива?

Вы можете использовать пространства имен для переопределения имен существующих функций:

 namespace blarg; function basename() { return 'whatever'; } $base = basename(); 

Т.е. любой вызов basename () в пространстве имен blarg будет использовать вашу новую версию функции.

Альтернативой будет runkit . Но это вряд ли будет включено на большинстве серверов.

Вы можете изменить локаль перед вызовом basename:

 setlocale(LC_ALL, 'en_US.UTF8'); 

Setlocale