Re: PHP Unicode extension in PHP6
| From: | Antony Dovgal | Date: | Sat, 19 May 2007 20:58:51 +0000 |
| Subject: | Re: PHP Unicode extension in PHP6 | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-29570@lists.php.net to get a copy of this message | ||
On 19.05.2007 19:48, Tomas Kuliavas wrote:
Yes. We're talking of PHP6 here.Try this, you'll see it's really easy: <?php //in Unicode mode all strings created this way are Unicode strings $s = "<any unicode string>"; var_dump(strlen(($s))); var_dump(strlen((binary)$s)); ?>http://www.php.net/language.types.type-juggling#language.types.typecasting No (binary). PHP 4.1.2 = parse error in test2.php on line 5. PHP 5.2.0 = Parse error: syntax error, unexpected T_VARIABLE in test2.php on line 5 It is E_PARSE error, so I can't apply fix after detecting PHP6.
Fix is not portable. We are talking about SquirrelMail code. Minimal PHP 4.1.x requirement. Good fix is closer to <?php //in Unicode mode all strings created this way are Unicode strings $s = "<any unicode string>"; var_dump(strlen($s)); // add php6 test here { settype($s,'binary'); // } var_dump(strlen($s)); ?>In real life this hack would not be required, since you should/would be using streams returning binary data. My example was just to show how to cast unicode to binary string.
I will have to write wrappers for all affected functions. Not wise. strlen("\xC4\x85") = 2. strlen((binary)"\xC4\x85") = 4. Not good. It is one character in utf-8.I'm afraid I don't understand you again..
Nevermind. Will watch how PHP6-dev changes and wait for better documentation.Watch? Just watching is pointless. Contribute to the discussions, exchange ideas, help developers - that'll make your life easier eventually. -- Wbr, Antony Dovgal