创建一个接受博客网址的某些字符的slug

时间:2017-10-12 12:02:54

标签: php

请问如何为我的php博客创建一个slug,其功能只接受字母数字,引号,逗号,句号,冒号,空格,_,@,#,&,*,%,货币符号和 - 但用空格替换所有其他字符,然后用短划线替换所有空格。 所有的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

不要创建自己的函数,只需使用现有的库。它会比你自己做的更好,并且重新发明轮子真的没有意义。

您可以尝试slugify之类的内容,快速谷歌搜索也会为您提供更多其他选择。

对于您的用例,使用Slugify创建带有slug的url的简单函数:

    /**
     * @param string $urlFormat
     * @param string $postTitle
     *
     * @return string
     */
    function createUrl(string $urlFormat, string $postTitle): string
    {
        $slugify = new Slugify();
        $slug = $slugify->slugify($postTitle);
        $url = sprintf($urlFormat, $slug);

        return $url;
    }

    createUrl('http://example.com/some/path/%s', 'Hello world');

请注意,此示例假定您使用的是PHP 7.0或更高版本。如果没有,请删除函数和参数的类型提示。