当我在url路径中键入“szukaj /zwierzęta”时,此代码不会返回任何匹配项,但是当我键入“szukaj/zwierzeta”时,它将起作用。PHP正则表达式不匹配波兰语字符
<?php
$url = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
$rules = array(
'film' => "/film/(?'film_slug'[^/]+)-(?'film_id'\d+)",
'szukaj' => "/szukaj/(?'query'[\w\-]+)",
);
foreach ($rules as $action => $rule) {
if (preg_match('~^'.$rule.'$~i', $uri, $params)) {
switch($action)
{
case 'szukaj': (doesn't work with ęąćźż, works with others)
}
}
}
我也试图与 'szukaj'=> “/ szukaj /( '查询'[\ PL | \对-N - ] +?)”,
,但没有奏效。
尝试增加unicode的标志''在你的正则表达式的开始。如果它不起作用尝试添加'u'标志 –