【发布时间】:2010-11-28 18:46:09
【问题描述】:
我正在编写一个博客,我希望 URI 的标题类似于 stackoverflow 中的问题标题或 wordpress。
清理 URI 的规则是什么?
PHP中是否有一个已经制作的代码可以做到这一点?
提前致谢,
奥马尔
【问题讨论】:
标签: php rest uri sanitization
我正在编写一个博客,我希望 URI 的标题类似于 stackoverflow 中的问题标题或 wordpress。
清理 URI 的规则是什么?
PHP中是否有一个已经制作的代码可以做到这一点?
提前致谢,
奥马尔
【问题讨论】:
标签: php rest uri sanitization
许多 CMS 已经实现了类似的功能,the one of Wordpress 已发布在 another question。一般来说,您可能也对question about this technique 感兴趣。
【讨论】:
通常,您会希望您的网址只有 0-9 和 a-z,并确保所有内容都是小写的。用破折号 (-) 替换空格,并去掉其余的乱码。
差不多已经搞定了。
【讨论】:
这可能是用单个连字符替换任何非字母数字字符的最短方法:
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;
}
【讨论】: