@@ 940-958 (lines=19) @@ | ||
937 | ||
938 | // decompose incoming XML into request structure |
|
939 | ||
940 | if ($req_encoding != '') |
|
941 | { |
|
942 | // Since parsing will fail if charset is not specified in the xml prologue, |
|
943 | // the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that... |
|
944 | // The following code might be better for mb_string enabled installs, but |
|
945 | // makes the lib about 200% slower... |
|
946 | //if (!is_valid_charset($req_encoding, array('UTF-8'))) |
|
947 | if (!in_array($req_encoding, array('UTF-8', 'US-ASCII')) && !has_encoding($data)) { |
|
948 | if ($req_encoding == 'ISO-8859-1') { |
|
949 | $data = utf8_encode($data); |
|
950 | } else { |
|
951 | if (extension_loaded('mbstring')) { |
|
952 | $data = mb_convert_encoding($data, 'UTF-8', $req_encoding); |
|
953 | } else { |
|
954 | error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $req_encoding); |
|
955 | } |
|
956 | } |
|
957 | } |
|
958 | } |
|
959 | ||
960 | $parser = xml_parser_create(); |
|
961 | xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); |
@@ 2645-2655 (lines=11) @@ | ||
2642 | // The following code might be better for mb_string enabled installs, but |
|
2643 | // makes the lib about 200% slower... |
|
2644 | //if (!is_valid_charset($resp_encoding, array('UTF-8'))) |
|
2645 | if (!in_array($resp_encoding, array('UTF-8', 'US-ASCII')) && !has_encoding($data)) { |
|
2646 | if ($resp_encoding == 'ISO-8859-1') { |
|
2647 | $data = utf8_encode($data); |
|
2648 | } else { |
|
2649 | if (extension_loaded('mbstring')) { |
|
2650 | $data = mb_convert_encoding($data, 'UTF-8', $resp_encoding); |
|
2651 | } else { |
|
2652 | error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $resp_encoding); |
|
2653 | } |
|
2654 | } |
|
2655 | } |
|
2656 | ||
2657 | $parser = xml_parser_create(); |
|
2658 | xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); |
|
@@ 3631-3641 (lines=11) @@ | ||
3628 | // The following code might be better for mb_string enabled installs, but |
|
3629 | // makes the lib about 200% slower... |
|
3630 | //if (!is_valid_charset($val_encoding, array('UTF-8'))) |
|
3631 | if (!in_array($val_encoding, array('UTF-8', 'US-ASCII')) && !has_encoding($xml_val)) { |
|
3632 | if ($val_encoding == 'ISO-8859-1') { |
|
3633 | $xml_val = utf8_encode($xml_val); |
|
3634 | } else { |
|
3635 | if (extension_loaded('mbstring')) { |
|
3636 | $xml_val = mb_convert_encoding($xml_val, 'UTF-8', $val_encoding); |
|
3637 | } else { |
|
3638 | error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $val_encoding); |
|
3639 | } |
|
3640 | } |
|
3641 | } |
|
3642 | ||
3643 | $parser = xml_parser_create(); |
|
3644 | xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); |