mirror of
https://github.com/php/php-src.git
synced 2024-10-23 01:07:01 +00:00
57 lines
1.2 KiB
Plaintext
57 lines
1.2 KiB
Plaintext
|
--TEST--
|
|||
|
iconv_strrpos()
|
|||
|
--SKIPIF--
|
|||
|
<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?>
|
|||
|
--INI--
|
|||
|
iconv.internal_charset=ISO-8859-1
|
|||
|
--FILE--
|
|||
|
<?php
|
|||
|
function my_error_handler($errno, $errmsg, $filename, $linenum, $vars)
|
|||
|
{
|
|||
|
echo "$errno: $errmsg\n";
|
|||
|
}
|
|||
|
set_error_handler('my_error_handler');
|
|||
|
function foo($haystk, $needle, $to_charset = false, $from_charset = false)
|
|||
|
{
|
|||
|
if ($from_charset !== false) {
|
|||
|
$haystk = iconv($from_charset, $to_charset, $haystk);
|
|||
|
}
|
|||
|
if ($to_charset !== false) {
|
|||
|
var_dump(iconv_strlen($haystk, $to_charset));
|
|||
|
var_dump(iconv_strrpos($haystk, $needle, $to_charset));
|
|||
|
} else {
|
|||
|
var_dump(iconv_strlen($haystk));
|
|||
|
var_dump(iconv_strrpos($haystk, $needle));
|
|||
|
}
|
|||
|
}
|
|||
|
foo("abecdbcdabcdef", "bcd");
|
|||
|
foo(str_repeat("abcab", 60)."abcdb".str_repeat("adabc", 60), "abcd");
|
|||
|
foo(str_repeat("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 30)."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>".str_repeat("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 30), "<22><><EFBFBD><EFBFBD>", "EUC-JP");
|
|||
|
|
|||
|
for ($i = 0; $i <=6; ++$i) {
|
|||
|
$str = str_repeat("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 60).str_repeat('$', $i).str_repeat("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 60);
|
|||
|
foo($str, '$', "ISO-2022-JP", "EUC-JP");
|
|||
|
}
|
|||
|
?>
|
|||
|
--EXPECT--
|
|||
|
int(14)
|
|||
|
int(9)
|
|||
|
int(605)
|
|||
|
int(300)
|
|||
|
int(305)
|
|||
|
int(151)
|
|||
|
int(600)
|
|||
|
bool(false)
|
|||
|
int(601)
|
|||
|
int(300)
|
|||
|
int(602)
|
|||
|
int(301)
|
|||
|
int(603)
|
|||
|
int(302)
|
|||
|
int(604)
|
|||
|
int(303)
|
|||
|
int(605)
|
|||
|
int(304)
|
|||
|
int(606)
|
|||
|
int(305)
|