我正在编写一个博客,我希望 URI 成为像 stackoverflow 中的问题标题或 wordpress 一样的标题。
清理 URI 的规则是什么?
PHP中是否有已经制作的代码可以做到这一点?
提前致谢,
奥马尔
我正在编写一个博客,我希望 URI 成为像 stackoverflow 中的问题标题或 wordpress 一样的标题。
清理 URI 的规则是什么?
PHP中是否有已经制作的代码可以做到这一点?
提前致谢,
奥马尔
这可能是用单个连字符替换任何非字母数字字符的最短方法:
trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')
万一网站宕机:
<?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;
}
许多 CMS 已经实现了类似的东西,Wordpress 的一个已经发布在另一个问题中。您可能也对有关此技术的一般问题感兴趣。
通常,您会希望您的 URL 只有 0-9 和 az,并确保所有内容都是小写的。用破折号 (-) 替换空格,并去掉其余的乱码。
所以几乎已经想通了。