Re: split behaviour differences in perl and php
| From: | Matthew Sims | Date: | Thu, 16 Sep 2004 18:38:56 +0000 |
| Subject: | Re: split behaviour differences in perl and php | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-196889@lists.php.net to get a copy of this message | ||
> * Thus wrote Sandip Bhattacharya:
>> This stumped me badly in my present project. Is this a bug or a feature
>> in
>> PHP? I am trying to split a string into two, where only one half (and
>> the
>> delimiter) is present.
>>
>>
>> IN PERL
>> ==================================
>> [sandip@pluto ~]$ cat s1.pl
>> @t = split(/,/ , "a,b");
>> $len = $#t + 1;
>> print "$len\n";
>> @t = split(/,/, "a,");
>> $len = $#t + 1;
>> print "$len\n";
>>
>> [sandip@pluto sql]$ perl s1.pl
>> 2
>> 1
>>
>>
>> IN PHP
>> =======================
>>
>> [sandip@pluto ~]$ cat s1.php
>> <?php
>> print count(split(',', 'a,b'))."\n";
>> print count(split(',', 'a,'))."\n";
>> ?>
>>
>> [sandip@pluto sql]$ php -q s1.php
>> 2
>> 2
>
> split in php isn't the same as perl's split, there is preg_split()
> which you can use:
>
> $results = preg_split('/,/','a,', -1, PREG_SPLIT_NO_EMPTY);
> print(count($results)); // outputs: 1
>
>
> Curt
Would explode() provide the same technique?
$var = "a,";
$results = explode(",", $var);
$results[0] = a;
--
--Matthew Sims
--<http://killermookie.org>