$test = "!!! sdfsdf sd$$$fdf ___";
$test = str_replace(' ', '_', $test); // Turn all spaces into underscores.
echo $test."<br />"; // Output: !!!___sdfsdf___sd$$$fdf______
$test = preg_replace('/[^a-zA-Z0-9_-]/', '-', $test); // Replace anything that isn't alphanumeric, or _-, with a hyphen.
echo $test."<br />"; // Output: !!!___sdfsdf___sd---fdf______
$test = preg_replace('/([_-])\1+/', '$1', $test); // Reduce multiple _- in a row to just one.
echo $test."<br />"; // Output: !_sdfsdf_sd-fdf_
Приведенный выше код - это то, что у меня сейчас есть, для чего я пытаюсь выяснить, что такое REGEX - как обрезать любые не буквенно-цифровые символы с концов. Таким образом, перевод окончательного результата из "! _Sdfsdf_sd-fdf_" в "sdfsdf_sd-fdf".