//我对此添加了新的看法,请参阅欺骗 PHP 整数 https://stackoverflow.com/questions/5505124/cheating-php-integers。任何帮助都感激不尽。我有一个想法,尝试通过将整数打包到无符号字节中来破解数组的存储选项(只需要 8 或 16 位整数即可显着减少内存)。
Hi
我目前正在开发自定义字符集检测库,并从 Mozilla 的字符集检测算法创建了一个端口,并使用 chardet(Python 端口)来提供帮助。然而,这在 PHP 中是非常占用内存的(如果我只加载西方语言检测,大约需要 30mb 内存)。我已经尽我所能地进行了优化,而无需从头开始重写它来加载每个部分(这会减少内存,但会使其速度慢很多)。
我的问题是,你知道有哪些 LGPL PHP 库可以进行字符集检测吗?
这纯粹是为了研究,为我在正确的方向上提供一点指导。
我已经知道 mb_detect_encoding 但它太有限了,并且对我拥有的文本文件带来了太多误报(但 python 的 chardet 可以完美地检测到它们)
我创建了一个正确编码为 UTF-8 的方法。但很难弄清楚当前编码的内容,所以我找到了这个解决方案:
<?php
function _convert($content) {
if(!mb_check_encoding($content, 'UTF-8')
OR !($content === mb_convert_encoding(mb_convert_encoding($content, 'UTF-32', 'UTF-8' ), 'UTF-8', 'UTF-32'))) {
$content = mb_convert_encoding($content, 'UTF-8');
if (mb_check_encoding($content, 'UTF-8')) {
// log('Converted to UTF-8');
} else {
// log('Could not converted to UTF-8');
}
}
return $content;
}
?>
如您所见,我进行了转换以检查它是否仍然相同(UTF-8/16),如果没有则进行转换。也许您可以使用其中的一些代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)