tidy_parse_string更改先前使用setlocale设置的语言环境

时间:2019-08-05 10:50:42

标签: php locale tidy

函数tidy_parse_string将我的语言环境更改为'C'。

<?php
setlocale(LC_ALL, 'de_DE');

/* [...] */

echo setlocale(LC_ALL, 0); // Show "de_DE"
$tidy = tidy_parse_string($text, $config, 'UTF8');
echo setlocale(LC_ALL, 0); // show "C" instead of "de_DE"
?>

是否有阻止的选择?

PHPTidy文档中对此一无所知。


我知道我可以在使用整齐的功能后简单地重新更改语言环境

<?php
setlocale(LC_ALL, 'de_DE');

/* [...] */

$oldLocale = setlocale(LC_ALL, 0);
$tidy = tidy_parse_string($text, $config, 'UTF8');
setlocale(LC_ALL, $oldLocale);
?>

但是我想知道这是功能,错误还是其他东西。

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个错误:https://github.com/htacg/tidy-html5/issues/770

所以解决方法是在调用后插入setlocale。

<?php
setlocale(LC_ALL, 'de_DE');

/* [...] */

$oldLocale = setlocale(LC_ALL, 0);
$tidy = tidy_parse_string($text, $config, 'UTF8');
setlocale(LC_ALL, $oldLocale);
?>