1

我正在编写一个 csv 文件重要脚本。有两种分隔符可供选择,逗号或分号。我注意到虽然在文本文件中,一些文本的中间有分号和逗号。每个文本字段周围都有语音标记,但有些字段是空白的,有些是数字的。我正在寻找一种方法来仅拆分语音标记之外的文本,同时保留文本而不是语音标记。

这是我用来拆分行的当前函数。

function parse_lines($p_CSVLines,$c_Names,$separator)
{
    $content = FALSE;
    if( !is_array($content) ) { // the first line contains fields numbers
        $this->fields = $c_Names;
        $content = array();
    }

    foreach($p_CSVLines as $line_num => $line){
        if($line != ''){ // skip empty lines
            $elements = split($separator, $line);
            $item = array();
            foreach($this->fields as $id => $field){
                if( isset($elements[$id]) ){
                   $field = trim($field,"\"");
                   $item[$field] = trim($elements[$id],"\"");
                }
            }
            $content[] = $item;
        }
    }
    return $content;
}
4

1 回答 1

1

请注意,split()强烈建议不要使用 ,现在已弃用。您可以使用preg_split()explode()

您在这里要做的是使用 REGEX 搜索不在文本中间的分号和逗号。preg_split()应该用正确的表达方式完成工作。

http://ca3.php.net/manual/en/function.preg-split.php

于 2012-10-01T14:25:34.997 回答