summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/string.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 0074868399..84665836a8 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -221,13 +221,15 @@ PHPAPI void php_explode(pval *delim, pval *str, pval *return_value)
if (p2 == NULL) {
add_index_stringl(return_value, i++, p1, str->value.str.len, 1);
- } else do {
- add_index_stringl(return_value, i++, p1, p2-p1, 1);
- p1 = p2 + delim->value.str.len;
- } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL);
+ } else {
+ do {
+ add_index_stringl(return_value, i++, p1, p2-p1, 1);
+ p1 = p2 + delim->value.str.len;
+ } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL);
- if (p1 <= endp) {
- add_index_stringl(return_value, i++, p1, endp-p1, 1);
+ if (p1 <= endp) {
+ add_index_stringl(return_value, i++, p1, endp-p1, 1);
+ }
}
}