Bug #18127 Updated: explode not exploding

From: Date: Wed, 03 Jul 2002 07:23:07 +0000
Subject: Bug #18127 Updated: explode not exploding
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-12940@lists.php.net to get a copy of this message
ID: 18127 Updated by: BlackMagic@computer.org Reported By: BlackMagic@computer.org -Status: Bogus +Status: Closed Bug Type: Strings related Operating System: Linux PHP Version: 4.1.2 New Comment: Derick, Thank you for the prompt response, and a fix that works. Without wanting to draw the matter out, there is an inconsistency in the way explode() works vis-a-vis strpos(). The manual entry for strpos() also says the item being searched for must be a string, but $x = strpos($address, 0x0D, $y); works fine. Previous Comments: ------------------------------------------------------------------------ [2002-07-03 02:50:33] derick@php.net From the manual: explode -- Split a string by string Description array explode ( string separator, string string [, int limit]) Your separator is 0x0D which is 13. Becuase 13 is not a 'string' it will be converted to the string "13" and aas there is no "13" in your string, it won't be exploded. User the following line instead: explode ("\n", $address); Derick ------------------------------------------------------------------------ [2002-07-03 02:31:10] BlackMagic@computer.org I'm using explode() to parse a street address from a web form looking for 0x0D characters, eg, $x = explode(0x0D, $address); The entire address ends up in $x, no matter how many line feeds it contains. The same thing happens with this code: $linefeed = 0x0D; $x = explode($linefeed, $address); This works, returning the correct value in $lines: $y = $lines = 0; $x = 1; while ($x) { $x = strpos($address, 0x0D, $y); $y = $x + 1; $lines++; } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=18127&edit=1

« previous php.bugs (#12940) next »