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