From 29401ca5a9bf5cbb5a827afba3d9cb1c2cbcc5f7 Mon Sep 17 00:00:00 2001 From: Brian Shire Date: Sat, 27 Dec 2008 05:20:27 +0000 Subject: [PATCH] MFH: fix explode behavior to respect negative limit when string is empty. --- NEWS | 1 + ext/standard/string.c | 4 +++- ext/standard/tests/strings/explode.phpt | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 3cfd09e25c..8516130bec 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2009, PHP 5.2.9 +- Fixed explode() behavior to respect negative limit when string is empty. (shire) - Added optional sorting type flag parameter to array_unique(), default is SORT_REGULAR. (Andrei) - Fixed security issue in imagerotate(), background colour isn't validated diff --git a/ext/standard/string.c b/ext/standard/string.c index 94b05a88e3..0b648c924b 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -1033,7 +1033,9 @@ PHP_FUNCTION(explode) array_init(return_value); if (! Z_STRLEN_PP(str)) { - add_next_index_stringl(return_value, "", sizeof("") - 1, 1); + if (limit >= 0 || argc == 2) { + add_next_index_stringl(return_value, "", sizeof("") - 1, 1); + } return; } diff --git a/ext/standard/tests/strings/explode.phpt b/ext/standard/tests/strings/explode.phpt index 6d54b66090..1047fb7856 100644 --- a/ext/standard/tests/strings/explode.phpt +++ b/ext/standard/tests/strings/explode.phpt @@ -17,6 +17,7 @@ var_dump(@explode("a", NULL)); var_dump(@explode(NULL, a)); var_dump(@explode("abc", "acb")); var_dump(@explode("somestring", "otherstring")); +var_dump(@explode("somestring", "otherstring", -1)); var_dump(@explode("a", "aaaaaa")); var_dump(@explode("==", str_repeat("-=".ord(0)."=-", 10))); var_dump(@explode("=", str_repeat("-=".ord(0)."=-", 10))); @@ -63,6 +64,8 @@ array(1) { [0]=> string(11) "otherstring" } +array(0) { +} array(7) { [0]=> string(0) "" -- 2.50.1