note 111579 added to function.str-getcsv

From: Date: Wed, 06 Mar 2013 01:31:02 +0000
Subject: note 111579 added to function.str-getcsv
Groups: php.notes 
Request: Send a blank email to php-notes+get-193952@lists.php.net to get a copy of this message
<?php Note: The function trims all values unlike str_getcsv (v5.3). /** * @link https://github.com/insteps/phputils (for updated code) * Parse a CSV string into an array for php 4+. * @param string $input String * @param string $delimiter String * @param string $enclosure String * @return array */ function str_getcsv4($input, $delimiter = ',', $enclosure = '"') { if( ! preg_match("/[$enclosure]/", $input) ) { return (array)preg_replace(array("/^\\s*/", "/\\s*$/"), '', explode($delimiter, $input)); } $token = "##"; $token2 = "::"; //alternate tokens "\034\034", "\035\035", "%%"; $t1 = preg_replace(array("/\\\[$enclosure]/", "/$enclosure{2}/", "/[$enclosure]\\s*[$delimiter]\\s*[$enclosure]\\s*/", "/\\s*[$enclosure]\\s*/"), array($token2, $token2, $token, $token), trim(trim(trim($input), $enclosure))); $a = explode($token, $t1); foreach($a as $k=>$v) { if ( preg_match("/^{$delimiter}/", $v) || preg_match("/{$delimiter}$/", $v) ) { $a[$k] = trim($v, $delimiter); $a[$k] = preg_replace("/$delimiter/", "$token", $a[$k]); } } $a = explode($token, implode($token, $a)); return (array)preg_replace(array("/^\\s/", "/\\s$/", "/$token2/"), array('', '', $enclosure), $a); } if ( ! function_exists('str_getcsv')) { function str_getcsv($input, $delimiter = ',', $enclosure = '"') { return str_getcsv4($input, $delimiter, $enclosure); } } ?> ---- Server IP: 69.147.83.199 Probable Submitter: 117.227.172.251 ---- Manual Page -- http://php.net/manual/en/function.str-getcsv.php Edit -- https://master.php.net/note/edit/111579 Del: integrated -- https://master.php.net/note/delete/111579/integrated Del: useless -- https://master.php.net/note/delete/111579/useless Del: bad code -- https://master.php.net/note/delete/111579/bad+code Del: spam -- https://master.php.net/note/delete/111579/spam Del: non-english -- https://master.php.net/note/delete/111579/non-english Del: in docs -- https://master.php.net/note/delete/111579/in+docs Del: other reasons-- https://master.php.net/note/delete/111579 Reject -- https://master.php.net/note/reject/111579 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#193952) next »