csvファイルの重要なスクリプトを書いています。選択できる区切り文字は、コンマまたはセミコロンの2つです。ただし、テキストファイルでは、一部のテキストの中央にセミコロンとコンマが含まれていることに気付きました。各テキストフィールドの周囲にはスピーチマークがありますが、一部のフィールドは空白で、一部は数値です。スピーチマークの代わりにテキストをそのままにして、スピーチマークの外側にあるテキストのみを分割する方法を探しています。
これが、行を分割するために使用している現在の関数です。
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;
}