我使用了Yii Sluggable Behavior,它适用于英语,但如果我在名称文本字段中编写阿拉伯语并创建一个新条目,则数据库中slug列的值为空。
<body>
有人知道如何支持阿拉伯语和其他语言吗?如果没有,是否有扩展工作?
提前致谢。
答案 0 :(得分:2)
创建一个slug通常涉及使用正则表达式来排除与普通URL格式不兼容的不需要的字符。
preg_replace
或preg_match
中使用的正则表达式通常用于支持英语slug,因此不包括所有其他类型的字符,如阿拉伯语。
我建议你用适当的字符范围编写自己的段塞函数,包括阿拉伯字符。像这样:
$slug = preg_replace("/[^a-zA-Z0-9ء-ي _\-]/u", "", $title);
这将排除除a-z,A-Z,0-9和阿拉伯字母范围之外的所有字符。它还会保留下划线,短划线和空格,如果需要,可以在以后替换它们。