<?php
function slugger(
string $input,
array $callbacks = [
\strtolower(...),
static function ($value) { return \preg_replace('/[^a-z]/', '-', $value); },
static function ($value) { return \trim($value, '-'); },
static function ($value) { return \preg_replace('/-+/', '-', $value); },
]
) {
foreach ($callbacks as $callback) {
$input = $callback($input);
}
return $input;
}
var_dump(slugger('Hello, World!')); // string(11) "hello-world"
?>