From: Thies C. Arntzen Date: Thu, 13 Sep 2001 10:48:41 +0000 (+0000) Subject: fix strtr() when called with two parameters. this has been broken for some time! X-Git-Tag: PRE_SUBST_Z_MACROS~106 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e929389eeb2821fa18083bce6e62580697de5983;p=php fix strtr() when called with two parameters. this has been broken for some time! guys, when "optimizing" functions you _shoudl_ write a testcase for the working function and make _sure_ that it works afterwards! --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 75e7438329..cf81eead7c 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -1926,7 +1926,7 @@ static void php_strtr_array(zval *return_value, char *str, int slen, HashTable * while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) == SUCCESS) { switch (zend_hash_get_current_key_ex(hash, &string_key, &string_key_len, &num_key, 0, &hpos)) { case HASH_KEY_IS_STRING: - len = string_key_len; + len = string_key_len-1; if (len > maxlen) maxlen = len; if (len < minlen) minlen = len; break; diff --git a/ext/standard/tests/strings/strtr.phpt b/ext/standard/tests/strings/strtr.phpt new file mode 100644 index 0000000000..2cab3a4317 --- /dev/null +++ b/ext/standard/tests/strings/strtr.phpt @@ -0,0 +1,11 @@ +--TEST-- +strtr() function +--POST-- +--GET-- +--FILE-- + "hi", "hi" => "hello","a" => "A","world" => "planet"); +echo strtr("# hi all, I said hello world! #", $trans) . "\n"; +?> +--EXPECT-- +# hello All, I sAid hi planet! #