Actually I think fgetcsv will work with any valid file pointer and at
least in PHP 5, the streams implementation will allow you to use a variety
of protocols to create the stream.
http://us2.php.net/manual/en/wrappers.php
I understand that it isn't even too teribbly difficult to implement your
own stream if one isn't already to your liking, but I'm afraid I haven't
found need to go beyond the simple read-a-file-from disk style operation.
Ben
On Mon, 17 Oct 2005 11:45:04 -0400, Jim Moseby <JMoseby@xxxxxxxxxxxxxxxxx>
wrote:
-----Original Message-----
From: Brian Dunning [mailto:brian@xxxxxxxxxxxxxxxx]
Sent: Monday, October 17, 2005 11:39 AM
To: php-general@xxxxxxxxxxxxx
Subject: Re: Uploaded CSV -> database
It looks like all of those tips will easily cover me for the latter
half of the operation. Any tips on how to get the uploaded CSV file
into memory in order to attack it with fgetcsv()? I'd rather
not ever
have to actually write the file to the server's disk.
Thanks!
If you are using the "standard" file upload facilities, your file is
being
written to disk when it is being uploaded. As far as I can tell,
fgetcsv()
will only read a file from disk:
<?php // from the manual
$row = 1;
$handle = fopen ("test.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
$num = count ($data);
print "<p> $num fields in line $row: <br>\n";
$row++;
for ($c=0; $c < $num; $c++) {
print $data[$c] . "<br>\n";
}
}
fclose ($handle);
?>
If you are instead using a socket connection to receive the file in a
stream
from the client, you could assign it to a string variable, and use
explode().
These are fairly uncharted territories for me, so others will likely have
better answers.
JM
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php