| @@ 3571-3601 (lines=31) @@ | ||
| 3568 | * |
|
| 3569 | * @return string |
|
| 3570 | */ |
|
| 3571 | public static function rawurldecode($str, $multi_decode = true) |
|
| 3572 | { |
|
| 3573 | $str = (string)$str; |
|
| 3574 | ||
| 3575 | if (!isset($str[0])) { |
|
| 3576 | return ''; |
|
| 3577 | } |
|
| 3578 | ||
| 3579 | $pattern = '/%u([0-9a-f]{3,4})/i'; |
|
| 3580 | if (preg_match($pattern, $str)) { |
|
| 3581 | $str = preg_replace($pattern, '&#x\\1;', rawurldecode($str)); |
|
| 3582 | } |
|
| 3583 | ||
| 3584 | $flags = Bootup::is_php('5.4') ? ENT_QUOTES | ENT_HTML5 : ENT_QUOTES; |
|
| 3585 | ||
| 3586 | do { |
|
| 3587 | $str_compare = $str; |
|
| 3588 | ||
| 3589 | $str = self::fix_simple_utf8( |
|
| 3590 | rawurldecode( |
|
| 3591 | self::html_entity_decode( |
|
| 3592 | self::to_utf8($str), |
|
| 3593 | $flags |
|
| 3594 | ) |
|
| 3595 | ) |
|
| 3596 | ); |
|
| 3597 | ||
| 3598 | } while ($multi_decode === true && $str_compare !== $str); |
|
| 3599 | ||
| 3600 | return (string)$str; |
|
| 3601 | } |
|
| 3602 | ||
| 3603 | /** |
|
| 3604 | * alias for "UTF8::remove_bom()" |
|
| @@ 6556-6586 (lines=31) @@ | ||
| 6553 | * |
|
| 6554 | * @return string |
|
| 6555 | */ |
|
| 6556 | public static function urldecode($str, $multi_decode = true) |
|
| 6557 | { |
|
| 6558 | $str = (string)$str; |
|
| 6559 | ||
| 6560 | if (!isset($str[0])) { |
|
| 6561 | return ''; |
|
| 6562 | } |
|
| 6563 | ||
| 6564 | $pattern = '/%u([0-9a-f]{3,4})/i'; |
|
| 6565 | if (preg_match($pattern, $str)) { |
|
| 6566 | $str = preg_replace($pattern, '&#x\\1;', urldecode($str)); |
|
| 6567 | } |
|
| 6568 | ||
| 6569 | $flags = Bootup::is_php('5.4') ? ENT_QUOTES | ENT_HTML5 : ENT_QUOTES; |
|
| 6570 | ||
| 6571 | do { |
|
| 6572 | $str_compare = $str; |
|
| 6573 | ||
| 6574 | $str = self::fix_simple_utf8( |
|
| 6575 | urldecode( |
|
| 6576 | self::html_entity_decode( |
|
| 6577 | self::to_utf8($str), |
|
| 6578 | $flags |
|
| 6579 | ) |
|
| 6580 | ) |
|
| 6581 | ); |
|
| 6582 | ||
| 6583 | } while ($multi_decode === true && $str_compare !== $str); |
|
| 6584 | ||
| 6585 | return (string)$str; |
|
| 6586 | } |
|
| 6587 | ||
| 6588 | /** |
|
| 6589 | * Return a array with "urlencoded"-win1252 -> UTF-8 |
|