如何使用PHP清理标题URI?

the*_*row 2 php rest uri sanitization

我正在编写一个博客,我希望URI在stackoverflow中像问题标题一样成为标题,或者像wordpress一样.
清理URI有哪些规则?
在PHP中是否有已经制作的代码可以做到这一点?

提前谢谢,
奥梅尔

Gum*_*mbo 6

这可能是用单个连字符替换任何非字母数字字符的最短方法:

trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')
Run Code Online (Sandbox Code Playgroud)


ras*_*spi 6

这是drupal如何做到的.

如果网站出现故障:

<?php
function pathauto_cleanstring($string)
{
    $url = $string;
    $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator
    $url = trim($url, "-");
    $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job
    $url = strtolower($url);
    $url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator
    return $url;
}
Run Code Online (Sandbox Code Playgroud)