mirror of
https://github.com/php/php-src.git
synced 2026-04-29 11:13:36 +02:00
- MFH: Refix bug #43840.
- MFH: Fix bug #43841. - MFH: Remove redundant trailing dots from the error messages. - MFH: Fix tests.
This commit is contained in:
@@ -778,7 +778,7 @@ retry:
|
||||
for (;;) {
|
||||
pc->found_pos++;
|
||||
p = h;
|
||||
m = pc->needle.buffer;
|
||||
m = (int *)pc->needle.buffer;
|
||||
n = pc->needle_pos - 1;
|
||||
while (n > 0 && *p == *m) {
|
||||
n--;
|
||||
@@ -857,87 +857,203 @@ mbfl_strpos(
|
||||
int offset,
|
||||
int reverse)
|
||||
{
|
||||
int n, result, negative_offset = 0;
|
||||
unsigned char *p;
|
||||
mbfl_convert_filter *filter;
|
||||
struct collector_strpos_data pc;
|
||||
int result;
|
||||
mbfl_string _haystack_u8, _needle_u8;
|
||||
const mbfl_string *haystack_u8, *needle_u8;
|
||||
const unsigned char *u8_tbl;
|
||||
|
||||
if (haystack == NULL || needle == NULL) {
|
||||
if (haystack == NULL || haystack->val == NULL || needle == NULL || needle->val == NULL) {
|
||||
return -8;
|
||||
}
|
||||
/* needle is converted into wchar */
|
||||
mbfl_wchar_device_init(&pc.needle);
|
||||
filter = mbfl_convert_filter_new(
|
||||
needle->no_encoding,
|
||||
mbfl_no_encoding_wchar,
|
||||
mbfl_wchar_device_output, 0, &pc.needle);
|
||||
if (filter == NULL) {
|
||||
return -4;
|
||||
|
||||
{
|
||||
const mbfl_encoding *u8_enc;
|
||||
u8_enc = mbfl_no2encoding(mbfl_no_encoding_utf8);
|
||||
if (u8_enc == NULL || u8_enc->mblen_table == NULL) {
|
||||
return -8;
|
||||
}
|
||||
u8_tbl = u8_enc->mblen_table;
|
||||
}
|
||||
p = needle->val;
|
||||
n = needle->len;
|
||||
if (p != NULL) {
|
||||
while (n > 0) {
|
||||
if ((*filter->filter_function)(*p++, filter) < 0) {
|
||||
break;
|
||||
|
||||
if (haystack->no_encoding != mbfl_no_encoding_utf8) {
|
||||
mbfl_string_init(&_haystack_u8);
|
||||
haystack_u8 = mbfl_convert_encoding(haystack, &_haystack_u8, mbfl_no_encoding_utf8);
|
||||
if (haystack_u8 == NULL) {
|
||||
result = -4;
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
haystack_u8 = haystack;
|
||||
}
|
||||
|
||||
if (needle->no_encoding != mbfl_no_encoding_utf8) {
|
||||
mbfl_string_init(&_needle_u8);
|
||||
needle_u8 = mbfl_convert_encoding(needle, &_needle_u8, mbfl_no_encoding_utf8);
|
||||
if (needle_u8 == NULL) {
|
||||
result = -4;
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
needle_u8 = needle;
|
||||
}
|
||||
|
||||
if (needle_u8->len < 1) {
|
||||
result = -8;
|
||||
goto out;
|
||||
}
|
||||
|
||||
result = -1;
|
||||
if (haystack_u8->len < needle_u8->len) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!reverse) {
|
||||
unsigned int jtbl[1 << (sizeof(unsigned char) * 8)];
|
||||
unsigned int needle_u8_len = needle_u8->len;
|
||||
unsigned int i;
|
||||
const unsigned char *p, *q, *e;
|
||||
const unsigned char *haystack_u8_val = haystack_u8->val,
|
||||
*needle_u8_val = needle_u8->val;
|
||||
for (i = 0; i < sizeof(jtbl) / sizeof(*jtbl); ++i) {
|
||||
jtbl[i] = needle_u8_len + 1;
|
||||
}
|
||||
for (i = 0; i < needle_u8_len - 1; ++i) {
|
||||
jtbl[needle_u8_val[i]] = needle_u8_len - i;
|
||||
}
|
||||
e = haystack_u8_val + haystack_u8->len;
|
||||
p = haystack_u8_val;
|
||||
while (--offset >= 0) {
|
||||
if (p >= e) {
|
||||
result = -16;
|
||||
goto out;
|
||||
}
|
||||
p += u8_tbl[*p];
|
||||
}
|
||||
p += needle_u8_len;
|
||||
if (p > e) {
|
||||
goto out;
|
||||
}
|
||||
while (p <= e) {
|
||||
const unsigned char *pv = p;
|
||||
q = needle_u8_val + needle_u8_len;
|
||||
for (;;) {
|
||||
if (q == needle_u8_val) {
|
||||
result = 0;
|
||||
while (p > haystack_u8_val) {
|
||||
unsigned char c = *--p;
|
||||
if (c < 0x80) {
|
||||
++result;
|
||||
} else if ((c & 0xc0) != 0x80) {
|
||||
++result;
|
||||
}
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
if (*--q != *--p) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
p += jtbl[*p];
|
||||
if (p <= pv) {
|
||||
p = pv + 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
unsigned int jtbl[1 << (sizeof(unsigned char) * 8)];
|
||||
unsigned int needle_u8_len = needle_u8->len, needle_len = 0;
|
||||
unsigned int i;
|
||||
const unsigned char *p, *e, *q, *qe;
|
||||
const unsigned char *haystack_u8_val = haystack_u8->val,
|
||||
*needle_u8_val = needle_u8->val;
|
||||
for (i = 0; i < sizeof(jtbl) / sizeof(*jtbl); ++i) {
|
||||
jtbl[i] = needle_u8_len;
|
||||
}
|
||||
for (i = needle_u8_len - 1; i > 0; --i) {
|
||||
unsigned char c = needle_u8_val[i];
|
||||
jtbl[c] = i;
|
||||
if (c < 0x80) {
|
||||
++needle_len;
|
||||
} else if ((c & 0xc0) != 0x80) {
|
||||
++needle_len;
|
||||
}
|
||||
}
|
||||
{
|
||||
unsigned char c = needle_u8_val[0];
|
||||
if (c < 0x80) {
|
||||
++needle_len;
|
||||
} else if ((c & 0xc0) != 0x80) {
|
||||
++needle_len;
|
||||
}
|
||||
}
|
||||
e = haystack_u8_val;
|
||||
p = e + haystack_u8->len;
|
||||
qe = needle_u8_val + needle_u8_len;
|
||||
if (offset < 0) {
|
||||
if (-offset > needle_len) {
|
||||
offset += needle_len;
|
||||
while (offset < 0) {
|
||||
unsigned char c;
|
||||
if (p <= e) {
|
||||
result = -16;
|
||||
goto out;
|
||||
}
|
||||
c = *(--p);
|
||||
if (c < 0x80) {
|
||||
++offset;
|
||||
} else if ((c & 0xc0) != 0x80) {
|
||||
++offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const unsigned char *ee = haystack_u8_val + haystack_u8->len;
|
||||
while (--offset >= 0) {
|
||||
if (e >= ee) {
|
||||
result = -16;
|
||||
goto out;
|
||||
}
|
||||
e += u8_tbl[*e];
|
||||
}
|
||||
}
|
||||
if (p < e + needle_u8_len) {
|
||||
goto out;
|
||||
}
|
||||
p -= needle_u8_len;
|
||||
while (p >= e) {
|
||||
const unsigned char *pv = p;
|
||||
q = needle_u8_val;
|
||||
for (;;) {
|
||||
if (q == qe) {
|
||||
result = 0;
|
||||
p -= needle_u8_len;
|
||||
while (p > haystack_u8_val) {
|
||||
unsigned char c = *--p;
|
||||
if (c < 0x80) {
|
||||
++result;
|
||||
} else if ((c & 0xc0) != 0x80) {
|
||||
++result;
|
||||
}
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
if (*q != *p) {
|
||||
break;
|
||||
}
|
||||
++p, ++q;
|
||||
}
|
||||
p -= jtbl[*p];
|
||||
if (p >= pv) {
|
||||
p = pv - 1;
|
||||
}
|
||||
n--;
|
||||
}
|
||||
}
|
||||
mbfl_convert_filter_flush(filter);
|
||||
mbfl_convert_filter_delete(filter);
|
||||
pc.needle_len = pc.needle.pos;
|
||||
if (pc.needle.buffer == NULL) {
|
||||
return -4;
|
||||
out:
|
||||
if (haystack_u8 == &_haystack_u8) {
|
||||
mbfl_string_clear(&_haystack_u8);
|
||||
}
|
||||
if (pc.needle_len <= 0) {
|
||||
mbfl_wchar_device_clear(&pc.needle);
|
||||
return -2;
|
||||
if (needle_u8 == &_needle_u8) {
|
||||
mbfl_string_clear(&_needle_u8);
|
||||
}
|
||||
/* initialize filter and collector data */
|
||||
filter = mbfl_convert_filter_new(
|
||||
haystack->no_encoding,
|
||||
mbfl_no_encoding_wchar,
|
||||
collector_strpos, 0, &pc);
|
||||
if (filter == NULL) {
|
||||
mbfl_wchar_device_clear(&pc.needle);
|
||||
return -4;
|
||||
}
|
||||
|
||||
if (offset < 0) {
|
||||
negative_offset = -offset - pc.needle_len;
|
||||
if (negative_offset < 0) {
|
||||
negative_offset = 0;
|
||||
}
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
pc.start = offset;
|
||||
pc.output = 0;
|
||||
pc.needle_pos = 0;
|
||||
pc.found_pos = 0;
|
||||
pc.matched_pos = -1;
|
||||
|
||||
/* feed data */
|
||||
p = haystack->val;
|
||||
n = haystack->len - negative_offset;
|
||||
if (p != NULL) {
|
||||
while (n > 0) {
|
||||
if ((*filter->filter_function)(*p++, filter) < 0) {
|
||||
pc.matched_pos = -4;
|
||||
break;
|
||||
}
|
||||
if (pc.matched_pos >= 0 && !reverse) {
|
||||
break;
|
||||
}
|
||||
n--;
|
||||
}
|
||||
}
|
||||
mbfl_convert_filter_flush(filter);
|
||||
result = pc.matched_pos;
|
||||
mbfl_convert_filter_delete(filter);
|
||||
mbfl_wchar_device_clear(&pc.needle);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -1867,7 +1867,7 @@ PHP_FUNCTION(mb_strstr)
|
||||
}
|
||||
|
||||
if (needle.len <= 0) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING,"Empty delimiter.");
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty delimiter");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
n = mbfl_strpos(&haystack, &needle, 0, 0);
|
||||
@@ -1976,7 +1976,7 @@ PHP_FUNCTION(mb_stristr)
|
||||
}
|
||||
|
||||
if(!needle.len){
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING,"Empty delimiter.");
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty delimiter");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
@@ -2095,7 +2095,7 @@ PHP_FUNCTION(mb_substr_count)
|
||||
}
|
||||
|
||||
if (needle.len <= 0) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING,"Empty substring.");
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty substring");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,29 +47,29 @@ bool(false)
|
||||
-- Offset is 22 --
|
||||
--Multibyte String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--ASCII String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Offset is 53 --
|
||||
--Multibyte String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--ASCII String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Offset is 54 --
|
||||
--Multibyte String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--ASCII String:--
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
bool(false)
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
--TEST--
|
||||
Test mb_strrpos() function : mb_strrpos offset is byte count for negative values
|
||||
--XFAIL--
|
||||
--SKIPIF--
|
||||
<?php
|
||||
extension_loaded('mbstring') or die('skip');
|
||||
@@ -40,31 +39,31 @@ foreach ($offsets as $i) {
|
||||
-- Offset is -25 --
|
||||
Multibyte String:
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
ASCII String:
|
||||
mb_strrpos:
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
strrpos:
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Offset is -24 --
|
||||
Multibyte String:
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
ASCII String:
|
||||
mb_strrpos:
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
strrpos:
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Offset is -13 --
|
||||
|
||||
@@ -115,12 +115,12 @@ int(8)
|
||||
|
||||
-- Iteration 3 --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 4 --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 5 --
|
||||
@@ -128,12 +128,12 @@ bool(false)
|
||||
|
||||
-- Iteration 6 --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 7 --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 8 --
|
||||
@@ -200,4 +200,4 @@ int(8)
|
||||
|
||||
Warning: mb_stripos() expects parameter 3 to be long, resource given in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -52,11 +52,11 @@ echo "Done";
|
||||
**-- Offset is: -10 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 0 --**
|
||||
@@ -80,40 +80,40 @@ int(20)
|
||||
**-- Offset is: 30 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 40 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 50 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 60 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_stripos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -135,12 +135,12 @@ bool(false)
|
||||
|
||||
-- Iteration 10 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 11 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 12 --
|
||||
@@ -148,7 +148,7 @@ bool(false)
|
||||
|
||||
-- Iteration 13 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 14 --
|
||||
@@ -156,17 +156,17 @@ bool(false)
|
||||
|
||||
-- Iteration 15 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 16 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 17 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 18 --
|
||||
@@ -183,16 +183,16 @@ bool(false)
|
||||
|
||||
-- Iteration 22 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 23 --
|
||||
|
||||
Warning: mb_strpos(): Empty delimiter. in %s on line %d
|
||||
Warning: mb_strpos(): Empty delimiter in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 24 --
|
||||
|
||||
Warning: mb_strpos() expects parameter 2 to be string, resource given in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -114,12 +114,12 @@ int(8)
|
||||
|
||||
-- Iteration 3 --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 4 --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 5 --
|
||||
@@ -127,12 +127,12 @@ bool(false)
|
||||
|
||||
-- Iteration 6 --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 7 --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 8 --
|
||||
@@ -199,4 +199,4 @@ int(8)
|
||||
|
||||
Warning: mb_strpos() expects parameter 3 to be long, resource given in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -50,11 +50,11 @@ echo "Done";
|
||||
**-- Offset is: -10 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 0 --**
|
||||
@@ -78,40 +78,40 @@ int(20)
|
||||
**-- Offset is: 30 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 40 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 50 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 60 --**
|
||||
-- ASCII String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Warning: mb_strpos(): Offset not contained in string. in %s on line %d
|
||||
Warning: mb_strpos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -116,27 +116,27 @@ int(8)
|
||||
|
||||
-- Iteration 3 --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 4 --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 5 --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 6 --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 7 --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 8 --
|
||||
@@ -203,4 +203,4 @@ int(8)
|
||||
|
||||
Warning: mb_strripos() expects parameter 3 to be long, resource given in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -76,40 +76,40 @@ int(20)
|
||||
**-- Offset is: 30 --**
|
||||
-- ASCII String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 40 --**
|
||||
-- ASCII String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 50 --**
|
||||
-- ASCII String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
**-- Offset is: 60 --**
|
||||
-- ASCII String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
--Multibyte String --
|
||||
|
||||
Notice: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -97,12 +97,12 @@ int(8)
|
||||
|
||||
-- Iteration 3 --
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 4 --
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 5 --
|
||||
@@ -113,7 +113,7 @@ bool(false)
|
||||
|
||||
-- Iteration 7 --
|
||||
|
||||
Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 8 --
|
||||
@@ -150,4 +150,4 @@ int(8)
|
||||
|
||||
-- Iteration 18 --
|
||||
int(8)
|
||||
Done
|
||||
Done
|
||||
|
||||
@@ -53,10 +53,10 @@ bool(false)
|
||||
Warning: stripos(): Offset not contained in string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
int(2)
|
||||
string(8) "abcdeabc"
|
||||
|
||||
@@ -16,30 +16,30 @@ var_dump(strripos(1024, "te", -PHP_INT_MAX-1));
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: strripos() expects parameter 1 to be string, array given in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
Done
|
||||
|
||||
@@ -92,7 +92,7 @@ int(6)
|
||||
int(6)
|
||||
-- Iteration 3 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 4 --
|
||||
int(6)
|
||||
|
||||
@@ -94,23 +94,23 @@ bool(false)
|
||||
bool(false)
|
||||
-- Iteration 3 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 4 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 5 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 6 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 7 --
|
||||
|
||||
Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 8 --
|
||||
bool(false)
|
||||
|
||||
Reference in New Issue
Block a user