mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00
Added test cases for iconv_strlen() and iconv_substr()
This commit is contained in:
parent
a3330b5ab3
commit
f76df0ba1b
2 changed files with 78 additions and 0 deletions
19
ext/iconv/tests/iconv_strlen.phpt
Normal file
19
ext/iconv/tests/iconv_strlen.phpt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
--TEST--
|
||||||
|
iconv_strlen()
|
||||||
|
--SKIPIF--
|
||||||
|
<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
function foo($str, $charset) {
|
||||||
|
var_dump(strlen($str));
|
||||||
|
var_dump(iconv_strlen($str, $charset));
|
||||||
|
}
|
||||||
|
|
||||||
|
foo("abc", "ASCII");
|
||||||
|
foo("ÆüËܸì EUC-JP", "EUC-JP");
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
int(3)
|
||||||
|
int(3)
|
||||||
|
int(13)
|
||||||
|
int(10)
|
59
ext/iconv/tests/iconv_substr.phpt
Normal file
59
ext/iconv/tests/iconv_substr.phpt
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
--TEST--
|
||||||
|
iconv_substr()
|
||||||
|
--SKIPIF--
|
||||||
|
<?php extension_loaded('iconv') or die('skip iconv extension is not available'); ?>
|
||||||
|
--INI--
|
||||||
|
iconv.internal_charset=ISO-8859-1
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
function hexdump($str) {
|
||||||
|
$len = strlen($str);
|
||||||
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
|
printf("%02x", ord($str{$i}));
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
function foo($str, $offset, $len, $charset) {
|
||||||
|
hexdump(substr($str, $offset, $len));
|
||||||
|
hexdump(iconv_substr($str, $offset, $len, $charset));
|
||||||
|
}
|
||||||
|
|
||||||
|
function bar($str, $offset, $len = false) {
|
||||||
|
if (is_bool($len)) {
|
||||||
|
var_dump(substr($str, $offset));
|
||||||
|
var_dump(iconv_substr($str, $offset));
|
||||||
|
} else {
|
||||||
|
var_dump(substr($str, $offset, $len));
|
||||||
|
var_dump(iconv_substr($str, $offset, $len));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo("abcdefghijklmnopqrstuvwxyz", 5, 7, "ASCII");
|
||||||
|
foo("あいうえおかきくけこさしす", 5, 7, "EUC-JP");
|
||||||
|
bar("This is a test", 100000);
|
||||||
|
bar("This is a test", 0, 100000);
|
||||||
|
bar("This is a test", -3);
|
||||||
|
bar("This is a test", 0, -9);
|
||||||
|
bar("This is a test", 0, -100000);
|
||||||
|
bar("This is a test", -9, -100000);
|
||||||
|
var_dump(iconv("ISO-2022-JP", "EUC-JP", iconv_substr(iconv("EUC-JP", "ISO-2022-JP", "こんにちは ISO-2022-JP"), 3, 8, "ISO-2022-JP")));
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
666768696a6b6c
|
||||||
|
666768696a6b6c
|
||||||
|
a6a4a8a4aaa4ab
|
||||||
|
a4aba4ada4afa4b1a4b3a4b5a4b7
|
||||||
|
bool(false)
|
||||||
|
string(0) ""
|
||||||
|
string(14) "This is a test"
|
||||||
|
string(14) "This is a test"
|
||||||
|
string(3) "est"
|
||||||
|
string(3) "est"
|
||||||
|
string(5) "This "
|
||||||
|
string(5) "This "
|
||||||
|
string(0) ""
|
||||||
|
string(0) ""
|
||||||
|
string(0) ""
|
||||||
|
string(0) ""
|
||||||
|
string(10) "ちは ISO-2"
|
Loading…
Add table
Add a link
Reference in a new issue