[TYPO3-dev] t3lib_div:xml2array() and PHP 4.4.x

Steffen Kamper steffen at dislabs.de
Mon Sep 11 23:07:31 CEST 2006


Hi Martin,

very useful, good to know. Thx !

vg  Steffen

"Martin Kutschker" <Martin.Kutschker at n0spam-blackbox.net> schrieb im 
Newsbeitrag 
news:mailman.1.1157704199.28958.typo3-dev at lists.netfielders.de...
> Martin Kutschker schrieb:
>> Martin Kutschker schrieb:
>>
>>> Hi!
>>>
>>> The code has a switch for PHP 5.x to use the XML_OPTION_TARGET_ENCODING 
>>> option.
>>>
>>> While devolping an extension it occured to me that this is also 
>>> necessary for PHP 4.4.0.
>>>
>>> Can anybody confirm this? It's not mentioned in the PHP docs, but 
>>> setting the option makes my code work ;-)
>>
>>
>> Aha! New infos:
>>
>> My editor on Windows adds byte order mark (BOM) at the beginning of the 
>> file. It adds the correct sequence EF BB BF to signify UTF-8.
>>
>> But this affects how the data is treated by PHP on Linux. If I remove the 
>> BOM everyting is fine otherwise I get garbled data unless I set the 
>> target encoding.
>>
>> As a BOM is a Unicode feature and I doesn't have always the choice of 
>> input methods I think that TYPO3 should handle such a case consitently 
>> across PHP  platforms (version and OS). Therefore I suggest to look for 
>> the BOM and if a UTF-8 BOM is found to set XML_OPTION_TARGET_ENCODING.
>
> The fix is:
>
> if (substr($string,0,3)=="\xEF\xBB\xBF") {
>   xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'utf-8');
> } elseif ((double)phpversion()>=5) {
>   ...
> }
>
> Masi 






More information about the TYPO3-dev mailing list