summaryrefslogtreecommitdiff
path: root/ext/standard/string.c
diff options
context:
space:
mode:
authorThies C. Arntzen <thies@php.net>2000-03-22 08:14:00 +0000
committerThies C. Arntzen <thies@php.net>2000-03-22 08:14:00 +0000
commit3e99a228dfcd0955eb0ee06a93ed34ec645bed69 (patch)
treeb667630161f07672cbcf6320d1fb828af7726436 /ext/standard/string.c
parent7c003f8c0c14ed58bb9f3178fffcb8b96a830663 (diff)
downloadphp-git-3e99a228dfcd0955eb0ee06a93ed34ec645bed69.tar.gz
@- stristr() no longer modifies it's arguments. (Thies)
fix #3890
Diffstat (limited to 'ext/standard/string.c')
-rw-r--r--ext/standard/string.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 8ccd27616e..ba9a672fd2 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -579,6 +579,9 @@ PHP_FUNCTION(stristr)
FAILURE) {
WRONG_PARAM_COUNT;
}
+
+ SEPARATE_ZVAL(haystack);
+ SEPARATE_ZVAL(needle);
convert_to_string_ex(haystack);
if ((*needle)->type == IS_STRING) {
@@ -586,12 +589,14 @@ PHP_FUNCTION(stristr)
php_error(E_WARNING,"Empty delimiter");
RETURN_FALSE;
}
+
found = php_stristr((*haystack)->value.str.val, (*needle)->value.str.val,
(*haystack)->value.str.len, (*needle)->value.str.len);
} else {
convert_to_long_ex(needle);
needle_char[0] = tolower((char) (*needle)->value.lval);
needle_char[1] = '\0';
+
found = php_stristr((*haystack)->value.str.val, needle_char,
(*haystack)->value.str.len, 1);
}