0

我想找到制作翻译框架的最佳方法(gettext 有一些缺陷)。

所以我做了两个测试 - 一,解析文件包含下面代码的静态文本

function parseLine($line) {
    if($line[0] == '#' || !strlen($line)) 
        return array();

    $eq = strpos($line, '=');
    $key = trim(substr($line, 0, $eq));

    $value = trim(substr($line, $eq+1));
    $value = trim($value, '"');

    return array($key => $value);
}

$table = array();
$fp = fopen('lang.lng', 'r');
while(!feof($fp)) {
    $table += parseLine(fgets($fp, 4096));
}
fclose($fp);

其次包括数组

$table = include('lang.php');

当然,每个 lang.lng 和 lang.php 都有相同的数据(1000 条记录),但以不同的方式表示。

当我看到结果时我感到很惊讶...... 第一种方法:~0.01 s 第二个:~0.001 s

在测试之前,我确信包含数组将占用更多内存和时间,然后解析文件。有人可以解释一下错误在哪里吗?

4

1 回答 1

2

我会认为这是一个明智的选择。哪个更快,读入一个包含数组的文件,或者读入一个文件,逐行处理它,并为每一行查找各种标记和组件,并将它们拼凑成一个复杂的问题,以产生与包含方法相同的数组?

于 2013-01-26T20:59:39.933 回答