note 94024 added to function.explode
| From: | JrgWagner at osu1 dot php dot net | Date: | Mon, 12 Oct 2009 21:28:53 +0000 |
| Subject: | note 94024 added to function.explode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-161661@lists.php.net to get a copy of this message | ||
Here is a very concise example for a quote aware explode - substrings in quotes (or another
definable enclosure char) are not exploded.
An additional parameter allows to determine whether the enclosure chars should be preserved within
the resulting array elements. Please note that as of PHP 5.3 the str_getcsv function offers a
built-in way to do this!
function csv_explode($delim=',', $str, $enclose='"', $preserve=false){
$resArr = array();
$n = 0;
$expEncArr = explode($enclose, $str);
foreach($expEncArr as $EncItem){
if($n++%2){
array_push($resArr, array_pop($resArr) . ($preserve?$enclose:'') .
$EncItem.($preserve?$enclose:''));
}else{
$expDelArr = explode($delim, $EncItem);
array_push($resArr, array_pop($resArr) . array_shift($expDelArr));
$resArr = array_merge($resArr, $expDelArr);
}
}
return $resArr;
}
----
Server IP: 69.147.83.197
Probable Submitter: 84.165.240.233
----
Manual Page -- http://www.php.net/manual/en/function.explode.php
Edit -- https://master.php.net/note/edit/94024
Del: integrated -- https://master.php.net/note/delete/94024/integrated
Del: useless -- https://master.php.net/note/delete/94024/useless
Del: bad code -- https://master.php.net/note/delete/94024/bad+code
Del: spam -- https://master.php.net/note/delete/94024/spam
Del: non-english -- https://master.php.net/note/delete/94024/non-english
Del: in docs -- https://master.php.net/note/delete/94024/in+docs
Del: other reasons-- https://master.php.net/note/delete/94024
Reject -- https://master.php.net/note/reject/94024
Search -- https://master.php.net/manage/user-notes.php