--- memcached-client.php-orig Wed Dec 15 14:38:37 2004 +++ memcached-client.php Tue Dec 14 23:05:28 2004 @@ -300,7 +300,7 @@ $this->stats['delete']++; $cmd = "delete $key $time\r\n"; - if(!fwrite($sock, $cmd, strlen($cmd))) { + if(!fwrite($sock, $cmd, $this->byte_count($cmd))) { $this->_dead_sock($sock); return false; } @@ -434,7 +434,7 @@ $cmd .= " ". $key; $cmd .= "\r\n"; - if (fwrite($sock, $cmd, strlen($cmd))) + if (fwrite($sock, $cmd, $this->byte_count($cmd))) $gather[] = $sock; else $this->_dead_sock($sock); @@ -508,7 +508,7 @@ if (!is_resource($sock)) return array(); - if (!fwrite($sock, $cmd, strlen($cmd))) + if (!fwrite($sock, $cmd, $this->byte_count($cmd))) return array(); while (true) { @@ -789,7 +789,7 @@ $ret[$rkey] = ""; while ($bneed > 0) { $data = fread($sock, $bneed); - $n = strlen($data); + $n = $this->byte_count($data); if ($n == 0) break; $offset += $n; @@ -858,13 +858,13 @@ printf("client: serializing data as it is not scalar\n"); } - $len = strlen($val); + $len = $this->byte_count($val); if ($this->_have_zlib && $this->_compress_enable && $this->_compress_threshold && $len >= $this->_compress_threshold) { $c_val = gzcompress($val, 9); - $c_len = strlen($c_val); + $c_len = $this->byte_count($c_val); if ($c_len < $len*(1 - COMPRESS_SAVINGS)) { @@ -926,6 +926,13 @@ // }}} // }}} // }}} + + function byte_count($val) { + $len = (function_exists('mb_strlen')) ? + mb_strlen($val, 'latin1') : + strlen($val); + return $len; + } } // }}}