为中文字符创建URL slugs.使用PHP

Kim*_*cks 3 php regex slug non-ascii-characters chinese-locale

我的用户有时会使用中文字符作为输入标题.

我的slu is的形式/stories/:id-:name可以是一个例子/stories/1-i-love-php.

我如何允许中文字符?

我用Google搜索并在这里找到了这个答案的日文版.

不太懂日语,所以我问的是中文版.

谢谢.

Aho*_*sik 7

我用孟加拉语测试过

它可能会奏效.试试这个:首先编码页面(在页面中写入代码)必须转换成UTF-8中的编码类型,然后编写代码.

代码在这里:

function to_slug($string, $separator = '-') {
    $re = "/(\\s|\\".$separator.")+/mu";
    $str = @trim($string);
    $subst = $separator;
    $result = preg_replace($re, $subst, $str);
    return $result;
}

$id=34;
$string_text="?????????? ??? ????? ---  ????? -???? ????";
$base_url="http://example.com/";
echo $target_url=$base_url.$id."-". @to_slug($string_text);

var_dump($target_url);
Run Code Online (Sandbox Code Playgroud)

输出:

http://example.com/34-??????????-???-?????-?????-????-????

string 'http://example.com/34-??????????-???-?????-?????-????-????' (length=136)
Run Code Online (Sandbox Code Playgroud)