Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Helper; | |
| use Mautic\CoreBundle\Exception\InvalidDecodedStringException; | |
| class ClickthroughHelper | |
| { | |
| /** | |
| * Encode an array to append to a URL. | |
| */ | |
| public static function encodeArrayForUrl(array $array): string | |
| { | |
| return urlencode(base64_encode(serialize($array))); | |
| } | |
| /** | |
| * Decode a string appended to URL into an array. | |
| * | |
| * @param bool $urlDecode | |
| * | |
| * @return array | |
| */ | |
| public static function decodeArrayFromUrl($string, $urlDecode = true) | |
| { | |
| $raw = $urlDecode ? urldecode($string) : $string; | |
| $decoded = base64_decode($raw); | |
| if (empty($decoded)) { | |
| return []; | |
| } | |
| if (0 !== stripos($decoded, 'a')) { | |
| throw new InvalidDecodedStringException($decoded); | |
| } | |
| return Serializer::decode($decoded); | |
| } | |
| } | |