note 37725 modified in function.explode by aidan
| From: | aidan@php.net | 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