/** * @param string $substring * @param callable|null $string * @return callable */ function str_find_after_dg($substring, $string = null) { if ($string === null) { $string = tuple_get(0); } return function () use($string, $substring) { return str_find_after(call_user_func_array($string, func_get_args()), $substring); }; }
/** * @param string $string * @return array */ function http_accept_decode($string) { return array_chain(explode(',', $string), array_map_val_dg(str_explode_dg(';')), array_map_val_dg(function ($pair) { if (1 === count($pair)) { $pair[] = 1.0; } else { debug_enforce(str_startswith($pair[1], 'q=')); $pair[1] = floatval(str_find_after($pair[1], 'q=')); } return $pair; })); }