當我在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'標誌 –