preserving blank space padding when using fgetcsv
| From: | Roger Spears | Date: | Wed, 03 Dec 2003 21:00:05 +0000 |
| Subject: | preserving blank space padding when using fgetcsv | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-171724@lists.php.net to get a copy of this message | ||
The first time I sent this message to the list, this is what bounced back...
"Hi. This is the qmail-send program at pb1.pair.com.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
<php-general@lists.php.net>:
This message is looping: it already has my Delivered-To line. (#5.4.6)"
So I am resending it. I apologize if anyone is getting this message twice......
Hello,
I've been researching this for most of the day and am unable to find an answer.
I'm using fgetcsv to read a comma delimited file (Microsoft Excel CSV). I'm trying to create a PHP application which will read a csv file line by line, remove the commas and preserve the padding that is in each column. That means if a column is a fixed length of 15 characters and the actual text in that column is only 5 characters long, the application will preserve the extra 10 blank spaces.
I'm able to open and read the csv using fgetcsv:
$handle = fopen ($filename, "r");
while ($mpt_line = fgetcsv ($handle, filesize ($filename), ","))
{
Then I check each member of that array to make sure it is the proper length for that column:
if (strlen($mpt_line[0])<4)
{
str_pad($mpt_line[0], 4, " ", STR_PAD_RIGHT);
}
When all of the length checks are finished I remove the commas and then print out the finished product:
}
$no_commas = str_replace(",", "", $mpt_line);
print "aa/".$no_commas[0]."/aa";
For output all I get is the actual text and no blank space padding. Meaning that if the field contains two characters of data it should still appear 4 characters in length. I was hoping to achieve aa/hi /aa instead all I get is aa/hi/aa.
Thanks,
Roger