Jump to content

Archived

This topic is now archived and is closed to further replies.

Monkuar

Post the most epic /confusing code you can create

Recommended Posts

Rules:

1) It has to be legit and actually work and have a useful function in society/web world.

2) The code cannot be minimized into one line. It has to have line breaks. (Not necessarily for each new function or short hand property, but so it's partly readable)

3) It has to be written in PHP or Javascript.

 

 

For example, (Not my original code) but I'll start: A time_ago function:

function timeago($tm,$rcs = 0) {
    $cur_tm = time(); 
    $dif = $cur_tm-$tm;
    $pds = array('second','minute','hour','day','week','month','year','decade');
    $lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);

    for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
        $no = floor($no);
        if($no <> 1)
            $pds[$v] .='s';
        $x = sprintf("%d %s ",$no,$pds[$v]);
        if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0))
            $x .= time_ago($_tm);
        return $x;
    }
Your turn!

Share this post


Link to post
Share on other sites

Why not?

	/**
	 * <http://tools.ietf.org/html/rfc3492#section-5>
	 */
	const PUNYCODE_DIGITS = 'abcdefghijklmnopqrstuvwxyz0123456789';

	/**
	 * Punycode: Adapt
	 *
	 * <http://tools.ietf.org/html/rfc3492#section-6.1>
	 *
	 * @param int $delta
	 * @param int $numpoints
	 * @param bool $firsttime
	 * @return int
	 */
	protected static function punycodeAdapt($delta, $numpoints, $firsttime) {
		if ($firsttime) {
			$delta = (int)($delta / 700);
		} else {
			$delta >>= 1;
		}
		$delta += (int)($delta / $numpoints);
		for ($k = 0; $delta > 455; $k += 36) {
			$delta = (int)($delta / 35);
		}
		return $k + (int)((36 * $delta) / ($delta + 38));
	}

	/**
	 * Punycode: decode
	 *
	 * <http://tools.ietf.org/html/rfc3492#section-6.2>
	 *
	 * @param string $string
	 * @param string $encoding
	 * @return string
	 */
	public static function punycodeDecode($string, $encoding = "UTF-8") {
		$n = 128;
		$i = 0;
		$bias = 72;

		$output = array();
		$_s = strrpos($string, "-");
		if ($_s !== false) {
			$output += str_split(substr($string, 0, $_s));
			$_s++;
		} else {
			$_s = 0;
		}

		$_slen = strlen($string);
		while ($_s < $_slen) {
			$_olds = $_s;
			$oldi = $i;
			$w = 1;
			for ($k = 36; ; $k += 36) {
				if ($_s >= $_slen) {
					return false;
				}
				$digit = strpos(self::PUNYCODE_DIGITS, strtolower($string[$_s++]));
				if ($digit === false) {
					return false;
				}
				$i += $digit * $w;
				$t = $k - $bias;
				if ($t > 26) {
					$t = 26;
				} else if ($t < 1) {
					$t = 1;
				}
				if ($digit < $t) {
					break;
				}
				$w *= (36 - $t);
			}
			$_len = count($output) + 1;
			$bias = self::punycodeAdapt($i - $oldi, $_len, $oldi == 0);
			$n += (int)($i / $_len);
			$i = ($i % $_len);

			// utf-8 encoding

			// 0xxxxxxx
			if ($n <= 0x3F) {
				$_n = chr($n);
			}
			// 110xxxxx 10xxxxxx
			else if ($n <= 0x7FF) {
				$_n = chr(0xC0 | ($n >> 6 & 0x1F))
					. chr(0x80 | ($n      & 0x3F));
			}
			// 1110xxxx 10xxxxxx 10xxxxxx
			else if ($n <= 0xFFFF) {
				$_n = chr(0xE0 | ($n >> 12 & 0x0F))
					. chr(0x80 | ($n >> 6  & 0x3F))
					. chr(0x80 | ($n       & 0x3F));
			}
			// 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
			else if ($n <= 0x1FFFFF) {
				$_n = chr(0xF0 | ($n >> 18 & 0x07))
					. chr(0x80 | ($n >> 12 & 0x3F))
					. chr(0x80 | ($n >> 6  & 0x3F))
					. chr(0x80 | ($n       & 0x3F));
			}
			// fail
			else {
				warning("f.url", ["Invalid Unicode codepoint U+%04X at offset %d '%s'", $n, $_olds, substr($string, $_olds, $_s - $_olds)]);
				$_n = "\xEF\xBF\xBD"; // U+FFFD REPLACEMENT CHARACTER
			}
			array_splice($output, $i, 0, [$_n]);
			$i++;
		}
		return mb_convert_encoding(implode("", $output), $encoding, "UTF-8");
	}

	/**
	 * Punycode: encode
	 *
	 * <http://tools.ietf.org/html/rfc3492#section-6.3>
	 *
	 * @param string $string
	 * @param string $encoding
	 * @return string
	 */
	public static function punycodeEncode($string, $encoding = "UTF-8") {
		$n = 128;
		$delta = 0;
		$bias = 72;
		$h = $b = 0;

		$output = "";
		$_cps = [];
		$_len = mb_strlen($string, $encoding);
		$_c = array_map("ord", str_split(mb_convert_encoding($string, "UTF-8", $encoding)));
		$_ccount = count($_c);
		for ($_i = 0; $_i < $_ccount; ) {
			// utf-8 decoding

			// 0xxxxxxx
			if (($_c[$_i] & 0x80) == 0x00) {
				$_cp = $_c[$_i++];
				$output .= chr($_cp);
				$h++; $b++;
			}
			// 110xxxxx 10xxxxxx
			else if (($_c[$_i] & 0xE0) == 0xC0 && ($_c[$_i + 1] & 0xC0) == 0x80) {
				$_cp = (($_c[$_i++] & 0x1F) << 6) | ($_c[$_i++] & 0x3F);
			}
			// 1110xxxx 10xxxxxx 10xxxxxx
			else if (($_c[$_i] & 0xF0) == 0xE0 && ($_c[$_i + 1] & 0xC0) == 0x80 && ($_c[$_i + 2] & 0xC0) == 0x80) {
				$_cp = (($_c[$_i++] & 0x0F) << 12) | (($_c[$_i++] & 0x3F) << 6) | ($_c[$_i++] & 0x3F);
			}
			// 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
			else if (($_c[$_i] & 0xF8) == 0xF0 && ($_c[$_i + 1] & 0xC0) == 0x80 && ($_c[$_i + 2] & 0xC0) == 0x80 && ($_c[$_i + 3] & 0xC0) == 0x80) {
				$_cp = (($_c[$_i++] & 0x07) << 18) | (($_c[$_i++] & 0x3F) << 12) | (($_c[$_i++] & 0x3F) << 6) | ($_c[$_i++] & 0x3F);
			}
			// fail
			else {
				warning("f.url", ["Invalid UTF-8 byte 0x%02X at offset %d", $_c[$_i], $_i]);
				$_cp = 0xFFFD; // U+FFFD REPLACEMENT CHARACTER
			}

			$_cps[] = $_cp;
		}
		$_sortcps = $_cps;
		sort($_sortcps, SORT_NUMERIC);

		if ($b > 0) {
			$output .= "-";
		}

		while ($h < $_len) {
			do {
				$m = array_shift($_sortcps);
			} while ($m < $n);
			$delta += ($m - $n) * ($h + 1);
			$n = $m;
			foreach ($_cps as $c) {
				if ($c < $n) {
					$delta++;
				} else if ($c == $n) {
					$q = $delta;
					for ($k = 36; ; $k += 36) {
						$t = $k - $bias;
						if ($t > 26) {
							$t = 26;
						} else if ($t < 1) {
							$t = 1;
						}
						if ($q < $t) {
							break;
						}
						$output .= substr(self::PUNYCODE_DIGITS, $t + (($q - $t) % (36 - $t)), 1);
						$q = (int)(($q - $t) / (36 - $t));
					}
					$output .= substr(self::PUNYCODE_DIGITS, $q, 1);
					$bias = self::punycodeAdapt($delta, $h + 1, $h == $b);
					$delta = 0;
					$h++;
				}
			}
			$delta++;
			$n++;
		}
		return $output;
	}
Code has to do with IDNs (international domain names) and converting them to/from ASCII representation using an algorithm called Punycode. Which is distressingly complicated.

Share this post


Link to post
Share on other sites

A number system with little-endian ordering is used which allows variable-length codes without separate delimiters: a digit lower than a threshold value marks that it is the most-significant digit, hence the end of the number. The threshold value depends on the position in the number and also on previous insertions, to increase efficiency. Correspondingly the weights of the digits vary.

 

 

In this case a number system with 36 digits is used, with the case-insensitive 'a' through 'z' equal to the numbers 0 through 25, and '0' through '9' equal to 26 through 35. Thus "kva", corresponds to "10 21 0".

 

  :

 

Nice one Req, I thought you were going to do something with the number bytes format code you crafted earlier though. Still impressive though, love this.

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.