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

时间:2014-04-23 08:30:09

标签: php regex slug non-ascii-characters chinese-locale

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

我的帖子格式为/stories/:id-:name,其中一个例子可能是/stories/1-i-love-php

如何允许使用中文字符?

我已经用Google搜索,并在here上找到了这个答案的日文版。

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

谢谢。

1 个答案:

答案 0 :(得分:6)

我测试过孟加拉语字符

它可能有用。试试这个: 首先,编码页面(在页面中写入代码)必须转换为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);

<强>输出:

http://example.com/34-আড়াইহাজারে-দেড়-বছরের-শিশুর-গলায়-ছুরি

string 'http://example.com/34-আড়াইহাজারে-দেড়-বছরের-শিশুর-গলায়-ছুরি' (length=136)