Hi Shahar,
This operation may fit nicely as:
class Zend_Filter_StringByteLength implements Zend_Filter_Interface
{
/**
* Returns the length in bytes of the string $value
*
* @param string $value
* @throws Zend_Filter_Exception If determining byte length is
impossible
* @return integer
*/
public function filter($value)
{
/**
* @todo Implementation
*/
}
}
or something similar?
Best regards,
Darby
Shahar Evron wrote:
> Hi all,
>
> I am working on one of the Http_Client bugs, ZF-2098, which describes a
> problem the Http_Client has when sending multi-byte encoded (eg. UTF8
> Chinese) text in the request body when mbstring is loaded and overloads
> the strlen() function. This happens because I've been using strlen() to
> calculate the body size (in bytes - not in characters).
>
> This works in most cases, but when mbstring overloads strlen with
> mb_strlen - what you get is the string length in characters and not in
> bytes.
>
> Brian DeShong already proposed a patch fixing the problem, but I've
> found that there are several Zend_Http classes that suffer from the same
> problem. I'm sure that other ZF classes, as well as users, who need a
> transparent way to calculate string length in bytes, irregardless of
> loaded extensions or PHP version (no idea what PHP 6 / 5.3 would cause
> in this case).
>
> So, is there any component of the framework where you would see a
> static ::strByteLength($string) method? I was going to implement one in
> Zend_Http_Client - but it's not really Zend_Http_Client specific.
>
> Suggestions welcome ;)
>
> Shahar.
>