note 82651 deleted from function.str-getcsv by cmb

From: Date: Sun, 09 Feb 2020 08:24:25 +0000
Subject: note 82651 deleted from function.str-getcsv by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-214060@lists.php.net to get a copy of this message
Note Submitter: peev[dot]alexander at gmail dot com ---- CSV parsing and storage is not that hard to implement - see my example functions ( I believe they do a pretty good job - I use them in a production environment ): <?php if( !function_exists("parse_csv") ){ function parse_csv($string){ /* Author : Alexander Peev, posted at PHP.NET */ if( !function_exists("parse_csv_aux") ){ function parse_csv_aux( $string ){ $product = ""; $in_quote = FALSE; $skipped_quote = FALSE; for( $i = 0 ; $i < strlen($string) ; $i++ ){ if( $string{$i} == "\"" ){ if($in_quote){ if($skipped_quote){ $product .= "\""; $skipped_quote = FALSE; } else if( !$skipped_quote ){ $skipped_quote = TRUE; } } else{ if($skipped_quote) $skipped_quote = FALSE; $in_quote = TRUE; } } else if( $string{$i} == ";" ){ if($in_quote){ $product .= ";"; } else{ $product .= " ; "; } } else{ if($in_quote){ $in_quote = FALSE; $product .= $string{$i}; } else{ $product .= $string{$i}; } } } return $product; } } $data = array(); if( is_string($string) && ( stripos($string, "\n") !== FALSE ) ){ $data = explode("\n", parse_csv_aux($string) ); foreach($data as $key => $row){ $columns = array(); //$row = strtr( $row, array( "\";\"" => "\";\"", ";" => " ; " ) ); if( stripos($row, " ; ") !== FALSE ){ $columns = explode( " ; ", $row ); if( !is_array($columns) )$columns = array( strval($columns) ); $data[$key] = $columns; } } return $data; } else if( is_string($string) && ( stripos( ($string = parse_csv_aux($string)), " ; ") !== FALSE ) ){ $columns = explode( " ; ", $string ); if( !is_array($columns) )$columns = array( strval($columns) ); return array($columns); } else return strval($string); } /* end function parse_csv */ } /* end not function exists parse_csv */ if( !function_exists("store_csv") ){ function store_csv($data){ /* Author : Alexander Peev, posted at PHP.NET */ if( !function_exists("store_csv_aux") ){ function store_csv_aux( $string ){ $string = strtr( $string, array( "\n" => "" ) ); $product = ""; $in_quote = FALSE; for( $i = 0 ; $i < strlen($string) ; $i++ ){ if( $string{$i} == "\"" ){ if($in_quote){ $product .= "\"\""; } else{ $product .= "\"\"\""; $in_quote = TRUE; } } else if( $string{$i} == ";" ){ if($in_quote){ $product .= ";"; } else{ $product .= "\";"; $in_quote = TRUE; } } else{ if($in_quote){ $product .= "\""; $in_quote = FALSE; $product .= $string{$i}; } else{ $product .= $string{$i}; } } } if($in_quote)$product .= "\""; return $product; } } if(!is_array($data))return strval($data); $passed_rows = FALSE; $product = ""; foreach($data as $row){ if( $passed_rows )$product .= "\n"; if( is_array($row) ){ $columns = ""; $passed_cols = FALSE; foreach($row as $column){ if( $passed_cols )$columns .= ";"; $columns .= store_csv_aux( $column ); $passed_cols =TRUE; } $product .= strval($columns); } else{ $product .= strtr( strval($row), array("\n" => "") ); } $passed_rows = TRUE; } return $product; } /* end function store_csv */ } /* end not function exists store_csv */ ?>

« previous php.notes (#214060) next »