473,508 Members | 2,351 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

CSV parsing

Hello all,

Anyone know of a way to call fgetcsv and fputcsv using a string rather than
a resource? (i.e.., parse a comma delimited string without writing it first
to a file.)

Thanks,
Kevin
Jul 17 '05 #1
6 2321

Kevin Lin wrote (in part):
Anyone know of a way to call fgetcsv and fputcsv using a string rather than a resource? (i.e.., parse a comma delimited string without writing it first to a file.)


Use the explode() function:

<?
$str = explode(',','This,is,a,test');
?>

Results in the array $str with four elements:
$str[0] = 'This'
$str[1] = 'is'
$str[2] = 'a'
$str[3] = 'test'

Ken

Jul 17 '05 #2
Thanks for the reply, but explode doesn't handle quoted cases, e.g.:

'Item1,"Item A,ItemB","Items ""one,"" ""two,"" and ""three"""'

should get parsed to:

$array[0]='Item1'
$array[1]='Item A,Item B'
$array[2]='Items "one," "two," and "three"'
"Ken Robinson" <ke******@rbnsn.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...

Kevin Lin wrote (in part):
Anyone know of a way to call fgetcsv and fputcsv using a string

rather than
a resource? (i.e.., parse a comma delimited string without writing

it first
to a file.)


Use the explode() function:

<?
$str = explode(',','This,is,a,test');
?>

Results in the array $str with four elements:
$str[0] = 'This'
$str[1] = 'is'
$str[2] = 'a'
$str[3] = 'test'

Ken

Jul 17 '05 #3
Kevin Lin <ke***@wx3remove4spam.com> wrote:
Thanks for the reply, but explode doesn't handle quoted cases, e.g.:

[snip]

By reading the user comments on the fgetcsv manual page one can find
http://bu.orbitel.bg/fgetcsvfromline.php. Seems the solution that you
are looking for.

Jul 17 '05 #4

"Kevin Lin" <ke***@wx3REMOVE4SPAM.com> wrote in message
news:hdKod.557418$mD.522470@attbi_s02...
Hello all,

Anyone know of a way to call fgetcsv and fputcsv using a string rather than a resource? (i.e.., parse a comma delimited string without writing it first to a file.)

Thanks,
Kevin


Use the example class at
http://us2.php.net/manual/en/functio...r-register.php
Jul 17 '05 #5
"Kevin Lin" <ke***@wx3REMOVE4SPAM.com> wrote in message news:<hdKod.557418$mD.522470@attbi_s02>...
Hello all,

Anyone know of a way to call fgetcsv and fputcsv using a string rather than
a resource? (i.e.., parse a comma delimited string without writing it first
to a file.)


IMHO, the most dependable way is to use existing fgetcsv along with
a temporary file:

<?php
function ParseCSVString($str, $delim=',')
{
//write the CSV string to a temporary file so that fgetcsv() can be
used to process...
$fp = tmpfile();
fwrite($fp, $str);
rewind($fp); //rewind to process CSV
$csv_length = strlen($str);
$data_arr = fgetcsv($fp, $csv_length, $delim);
fclose($fp); //clean up temp file
return $data_arr; //return the array
}
?>

Or may use csv_explode() found at <http://in.php.net/explode#37004>

--
<?php echo 'Just another PHP saint'; ?>
Email: rrjanbiah-at-Y!com
Jul 17 '05 #6
This looks useful, thanks.

"Chung Leong" <ch***********@hotmail.com> wrote in message
news:bK********************@comcast.com...

"Kevin Lin" <ke***@wx3REMOVE4SPAM.com> wrote in message
news:hdKod.557418$mD.522470@attbi_s02...
Hello all,

Anyone know of a way to call fgetcsv and fputcsv using a string rather

than
a resource? (i.e.., parse a comma delimited string without writing it

first
to a file.)

Thanks,
Kevin


Use the example class at
http://us2.php.net/manual/en/functio...r-register.php

Jul 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
9425
by: Gerrit Holl | last post by:
Posted with permission from the author. I have some comments on this PEP, see the (coming) followup to this message. PEP: 321 Title: Date/Time Parsing and Formatting Version: $Revision: 1.3 $...
2
3916
by: Cigdem | last post by:
Hello, I am trying to parse the XML files that the user selects(XML files are on anoher OS400 system called "wkdis3"). But i am permenantly getting that error: Directory0: \\wkdis3\ROOT\home...
16
2854
by: Terry | last post by:
Hi, This is a newbie's question. I want to preload 4 images and only when all 4 images has been loaded into browser's cache, I want to start a slideshow() function. If images are not completed...
0
4101
by: Pentti | last post by:
Can anyone help to understand why re-parsing occurs on a remote database (using database links), even though we are using a prepared statement on the local database: Scenario: ======== We...
9
4042
by: ankitdesai | last post by:
I would like to parse a couple of tables within an individual player's SHTML page. For example, I would like to get the "Actual Pitching Statistics" and the "Translated Pitching Statistics"...
5
4282
by: randy | last post by:
Can some point me to a good example of parsing XML using C# 2.0? Thanks
3
4359
by: toton | last post by:
Hi, I have some ascii files, which are having some formatted text. I want to read some section only from the total file. For that what I am doing is indexing the sections (denoted by .START in...
13
4474
by: Chris Carlen | last post by:
Hi: Having completed enough serial driver code for a TMS320F2812 microcontroller to talk to a terminal, I am now trying different approaches to command interpretation. I have a very simple...
7
2393
by: Daniel Fetchinson | last post by:
Many times a more user friendly date format is convenient than the pure date and time. For example for a date that is yesterday I would like to see "yesterday" instead of the date itself. And for...
1
4349
by: eyeore | last post by:
Hello everyone my String reverse code works but my professor wants me to use pop top push or Stack code and parsing code could you please teach me how to make this code work with pop top push or...
0
7225
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7324
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7382
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7042
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5627
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5052
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
3193
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
1556
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
418
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.