RE: [PHP] Null character as field seperator in a string.

2002-04-29 Thread Dave MacRae


> On Monday 29 April 2002 18:26, Dave MacRae wrote:
> > For historic reasons, I have a file that contains a number of records in
> > which the fields are seperated by the NULL character, i.e,
> >
> > field1\0field2\0field3\0field4
> >
> > I need to parse out the fields from this string.
> >
> > The string is read into the program using
> >
> > $buffer = fgets(...).
> >
> > This would be no problem in Perl or C but I cannot get this to
> work in PHP.
> >
> > I have tried using
> >
> > preg_split("/\0/", $buffer);
> >
> > But this fails. I've tried walking through the string but it seems that
> > $buffer only has the content up to the first NULL character.
>
> Try using fread() to get your file (it's binary safe). Then use:
>
>   explode(chr(0), $buffer);
>
> to separate your fields.

I'm beginning to think this may be the only solution.

I now have to figure out how to process the records as I'm looking for the
data in a particular line in the file, this should be fairly easy.

Thanks.

Dave


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP] Null character as field seperator in a string.

2002-04-29 Thread Jason Wong

On Monday 29 April 2002 18:26, Dave MacRae wrote:
> For historic reasons, I have a file that contains a number of records in
> which the fields are seperated by the NULL character, i.e,
>
> field1\0field2\0field3\0field4
>
> I need to parse out the fields from this string.
>
> The string is read into the program using
>
>   $buffer = fgets(...).
>
> This would be no problem in Perl or C but I cannot get this to work in PHP.
>
> I have tried using
>
>   preg_split("/\0/", $buffer);
>
> But this fails. I've tried walking through the string but it seems that
> $buffer only has the content up to the first NULL character.

Try using fread() to get your file (it's binary safe). Then use:

  explode(chr(0), $buffer);

to separate your fields.

-- 
Jason Wong -> Gremlins Associates -> www.gremlins.com.hk
Open Source Software Systems Integrators
* Web Design & Hosting * Internet & Intranet Applications Development *

/*
I have gained this by philosophy:
that I do without being commanded what others do only from fear of the law.
-- Aristotle
*/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] Null character as field seperator in a string.

2002-04-29 Thread Dave MacRae


> Hey..
>
> yeah I might..
>
>
> I don't know if I am right or just blabbering crap
>
> but try to add these param's to your regex statement..
>
>
> preg_split("/\0/i", $buffer);
>
>
> note the i.. It should let it read past newlines.. although you're prob is
> with null (\0) chars..
>
>
> as I said.. Don't know if I am on the right track.. but it's
> worth a go eh??

Unfortunatly I get the message

"Warning: No ending delimiter '/' found in " when I try this. It appears
that PHP is interpreting the \0 as a string terminator for the pattern match
:(

Dave


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP] Null character as field seperator in a string.

2002-04-29 Thread The_RadiX

Hey..

yeah I might..


I don't know if I am right or just blabbering crap

but try to add these param's to your regex statement..


preg_split("/\0/i", $buffer);


note the i.. It should let it read past newlines.. although you're prob is
with null (\0) chars..


as I said.. Don't know if I am on the right track.. but it's worth a go eh??





good luck..

- Original Message -
From: "Dave MacRae" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 29, 2002 8:26 PM
Subject: [PHP] Null character as field seperator in a string.


> For historic reasons, I have a file that contains a number of records in
> which the fields are seperated by the NULL character, i.e,
>
> field1\0field2\0field3\0field4
>
> I need to parse out the fields from this string.
>
> The string is read into the program using
>
> $buffer = fgets(...).
>
> This would be no problem in Perl or C but I cannot get this to work in
PHP.
>
> I have tried using
>
> preg_split("/\0/", $buffer);
>
> But this fails. I've tried walking through the string but it seems that
> $buffer only has the content up to the first NULL character.
>
> Does anyone have a simple solution to this problem.
>
> Regards
>
> Dave
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php