使用PHP脚本做文本处理

年底处理数据的时候,需要将其他部门 Excel 的数据转换为指定格式的文本格式。

其中学到的两个操作,在这里记录一下:

  1. Excel 转换为文本文件
  2. 使用 PHP 脚本处理文本格式并输出

1. Excel 转换为文本文件

开发 Excel 另存为 txt 文本格式,如果文本中有中文,就会有编码问题,mac 下的文件导出为 UTF-16LE 的编码格式。

2. 使用 PHP 脚本处理文本格式并输出

txt 的文本格式示例:

1   3 2 4
1   3 2 4

期望得到的 txt 格式:

1 2 3 4 5
1 2 3 4 5

需要处理每一行的数据,每一行数据用 PHP_EOL 分割,然后用空格(可能多个)分割每一行数据,再去处理和写入。

$content = file_get_contents($filename);

$content = file_get_contents($content, 'UTF-8', 'UTF-16LE')

$rowArr = explode(PHP_EOL, $content);

foreach ($rowArr as $row) {
    $arr = preg_split("/\s+/", trim($row);
    
    // 处理对应格式,生成临时的数组
    $tempArr = ....
    
    echo implode(' ', $tempArr) . "\n";
}

通过 preg_split 使用正则匹配多个空格的情况,如果是固定的一个空格,explode 函数速度更快。

最后执行脚本命令 php filename.php > des.txt