note 37725 modified in function.explode by aidan

From: Date: Sun, 27 Jun 2004 14:05:08 +0000
Subject: note 37725 modified in function.explode by aidan
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-71908@lists.php.net to get a copy of this message
Here I have some aditions to the code provided by hhromic at udec dot cl (When having empty chains) <?php function csv_explode ($str, $delim=',', $qual="\"") { $largo=strlen($str); $dentro=false; $palabra=""; for ( $i=0; $i<$largo; $i++) { if ( $str[$i] == $delim && !$dentro ) { $salida[] = $palabra; $palabra=""; } else if ( $str[$i] == $qual && ( $i<$largo && $str[$i+1] == $qual ) ) { if ($str[$i+2] == $delim) { $palabra .= ""; } else $palabra .= $qual; $i++; } else if ( $str[$i] == $qual ) { $dentro = !$dentro; } else { $palabra .= $str[$i]; } } $salida[]=$palabra; return $salida; } ?> Cheers from Colombia --was-- Here I have some aditions to the code provided by hhromic at udec dot cl (When having empty chains) function csv_explode ($str, $delim=',', $qual="\"") { // Largo de la línea $largo=strlen($str); $dentro=false; $palabra=""; for ( $i=0; $i<$largo; $i++) { if ( $str[$i] == $delim && !$dentro ) { $salida[] = $palabra; $palabra=""; } else if ( $str[$i] == $qual && ( $i<$largo && $str[$i+1] == $qual ) ) { if ($str[$i+2] == $delim) {//empty $palabra .= ""; } else $palabra .= $qual; $i++; } else if ( $str[$i] == $qual ) { $dentro = !$dentro; } else { $palabra .= $str[$i]; } } $salida[]=$palabra; return $salida; } Cheers from Colombia http://php.net/manual/en/function.explode.php

« previous php.notes (#71908) next »