<?php
    define('URL_BASE64_FROM', '+/');
    define('URL_BASE64_TO', '-_');
    function url_base64_encode($data) {
        $encoded = base64_encode($data);
        if ($encoded === false) {
            return false;
        }
        return str_replace('=', '', strtr($encoded, URL_BASE64_FROM, URL_BASE64_TO));
    }
    define('PACK_NUMS_FORMAT', 'n*');
    function pack_nums($num_arr) {
        array_unshift($num_arr, PACK_NUMS_FORMAT);
        return call_user_func_array('pack', $num_arr);
    }
    function url_embed_array($arr) {
        return url_base64_encode(gzcompress(pack_nums($arr)));
    }
    // #####
    $arr = range(1, 1000);
    $palec_encoded = url_embed_array($arr);
    $op_encoded = urlencode(base64_encode(gzcompress(implode(',', $arr))));
    printf("Palec:\t%d\nOP:\t%d\n", strlen($palec_encoded), strlen($op_encoded));
?>