Splitting a CSV string into an array could be done like this too:

$fields = explode('","', trim($string, '"'));

 - Stig

Justin Plock wrote:
> 
> I guess this would be the correct list to post this on, but I have an idea
> for a function that I think would be very handy to users having to deal with
> CSV data. Basically, I've had to write a version of the explode() function,
> but have it pay attention to values that are wrapped in another character.
> For example:
> 
> the delimiter is:  ,
> and the wrapper is a: "
> 
> the function would work as such:
> 
> "this is some text","we can have a bunch of them","but, gotta, watch, out
> for those commas inside"
> 
> it would return:
> 
> "this is some text"
> "we can have a bunch of them"
> "but, gotta, watch, out for these commas inside"
> 
> below is the PHP function I have developed:
> 
> /**
>  *  Does an explode but pays attention to the delimeter.
>  *
>  *  @param $splitter - string - required delimeter to split on
>  *  @param $wrap - string - required string to wrap text areas
>  *  @param $rest - string - required data to explode
>  *
>  *  @return array - exploded array
>  */
> function csv_explode($splitter, $wrap, $rest)
> {
>     $instring = false;
>     $field = '';
>     $ret = array();
>     while ($rest)
>     {
>         $first = substr($rest, 0, 1);
>         $rest = substr($rest, 1);
>         if ($first == $wrap)
>         {
>             $instring = (!$instring) ? true : false;
>         }
>         if (($first == $splitter) && !$instring)
>         {
>             $ret[] = $field;
>             $field = '';
>         }
>         else
>         {
>             if ($first != $wrap)
>             {
>                 $field .= $first;
>             }
>         }
>     }
>     $ret[] = $field;
>     return($ret);
> }
> 
> If I knew C, I would try to port this to a PHP myself, but I don't. I was
> just hoping someone else would. :)
> 
> Thanks.
> 
> -Justin Plock
> 
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to