我尝试将搜索引擎的友好网址包含在波斯语或阿拉伯字符中
在网址SPACES
和symbols
中必须使用-
字符替换。
我的示例输入:عنوان آزمایشی - Test Title
我尝试使用我的功能:
$title = trim(ereg_replace(' +', ' ', preg_replace("/[^اآبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیa-zA-Z0-9\s]/", '', strtolower($title))));
但是给出结果:عنوان-آزما�ش�-test-title
结果必须:عنوان-آزمایشی---Test-Title
(例如)
问题出在哪里? 我知道波斯语单词是Unicode,但不知道如何传递它!
编辑:字符ی
或یـ
等问题总是变成�
,但我试图找到一种更安全的方式。
答案 0 :(得分:2)
我没有在互联网上找到解决方案,而是以最简单的方式找到解决方案:
preg_replace('/&([^#])(?![a-z]{1,8};)/i', '&$1', $title);
结果非常好。
答案 1 :(得分:1)
问题是strtolower
不具备多字节功能。
相反,请考虑处理多字节UTF字符的mb_strtolower。