note 105209 added to function.str-getcsv

From: Date: Wed, 03 Aug 2011 02:19:28 +0000
Subject: note 105209 added to function.str-getcsv
Groups: php.notes 
Request: Send a blank email to php-notes+get-182127@lists.php.net to get a copy of this message
For people who haven't got access to str_getcsv() in their version of PHP and want to convert strings from CSV, I have seen many huge swaths of code and regexes to do this extremely simple task. Here's minimal, fast code: function csv2array($input,$delimiter=',',$enclosure='"',$escape='\\'){ $fields=explode($enclosure.$delimiter.$enclosure,substr($input,1,-1)); foreach ($fields as $key=>$value) $fields[$key]=str_replace($escape.$enclosure,$enclosure,$value); return($fields); } function array2csv($input,$delimiter=',',$enclosure='"',$escape='\\'){ foreach ($input as $key=>$value) $input[$key]=str_replace($enclosure,$escape.$enclosure,$value); return $enclosure.implode($enclosure.$delimiter.$enclosure,$input).$enclosure; } $data=array("one","\"two\""); for ($i=0;$i<100;$i++) $data=array(array2csv($data),$i); echo "Encoded $i times...".var_export($data,true)."\n"; for ($j=0;$j<$i;$j++) $data=csv2array($data[0]); echo "Decoded $i times...".var_export($data,true)."\n"; Pretty straightforward. ;-) Yes, I intentionally changed the function names, ---- Server IP: 69.147.83.197 Probable Submitter: 96.50.58.182 ---- Manual Page -- http://www.php.net/manual/en/function.str-getcsv.php Edit -- https://master.php.net/note/edit/105209 Del: integrated -- https://master.php.net/note/delete/105209/integrated Del: useless -- https://master.php.net/note/delete/105209/useless Del: bad code -- https://master.php.net/note/delete/105209/bad+code Del: spam -- https://master.php.net/note/delete/105209/spam Del: non-english -- https://master.php.net/note/delete/105209/non-english Del: in docs -- https://master.php.net/note/delete/105209/in+docs Del: other reasons-- https://master.php.net/note/delete/105209 Reject -- https://master.php.net/note/reject/105209 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#182127) next »