match('GET', '/packages')) { $tags = explode(';', (string)$request->getQueryParam('tags', FILTER_SANITIZE_STRING)); $packages = empty($tags) ? Patchouli::getPackages() : Patchouli::getPackagesWithTags($tags); $encoded = FWIF::encode($packages); echo strlen($encoded) . ' ' . $encoded; echo "\r\n\r\n--------------------\r\n\r\n"; $jsonEncoded = json_encode($packages); echo strlen($jsonEncoded) . ' ' . $jsonEncoded; echo "\r\n\r\n--------------------\r\n\r\n"; $hexdump = bin2hex($encoded); $hexdumpSect = 8; $hexdumpSize = 32; for($i = 0; $i < strlen($hexdump) / $hexdumpSize; ++$i) { $line = substr($hexdump, $i * $hexdumpSize, $hexdumpSize); echo str_pad(dechex($i * $hexdumpSize), 4, '0', STR_PAD_LEFT) . ' '; for($j = 0; $j < strlen($line) / $hexdumpSect; ++$j) echo substr($line, $j * $hexdumpSect, $hexdumpSect) . ' '; echo "\r\n"; } echo "\r\n--------------------\r\n\r\n"; var_dump([(object)$packages[0]->fwifSerialize()]); echo "\r\n--------------------\r\n\r\n"; $decoded = FWIF::decode($encoded); var_dump($decoded); return; } if($request->match('GET', '/')) { header('Content-Type: text/html; charset=utf-8'); echo 'Patchouli
';
    readfile(PAT_ROOT . '/patchouli.txt');
    echo '
'; return; } http_response_code(404); echo '{"code":404,"message":"Path not found."}';