Невозможно прочитать арабский c символ из Wordpress REST API - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь реализовать поиск REST API для Wordpress. Все отлично работает в Engli sh, однако, когда я ввожу в URL какой-нибудь араби c, он скажет мне rest_no_route.

Это моя рабочая версия для Engli sh

        register_rest_route(
            'search', 
            '/keywords/(?P<value>[\w+].+)', 
            $args
        );

После проведенного исследования было предложено добавить [ء-ي] к моему регулярному выражению. Тем не менее, я не совсем уверен, куда добавить регулярное выражение, так как Arabi c читает справа налево.

Я пробовал (?P<value>[ء-ي][\w+].+) или [ء-ي](?P<value>[\w+].+), но он все равно не будет работать.

Есть предложения?

1 Ответ

0 голосов
/ 17 апреля 2020

Сокращение \w в PHP по умолчанию не соответствует буквам и цифрам Юникода. Вам нужно будет использовать (*UCP) (возможно, с (*UTF)) глагол PCRE, чтобы он совпадал со всеми буквами / цифрами Unicode. См. пример .

. В вашем случае вы можете просто удалить \w+ и оставить .+ для соответствия любым 1+ символам, кроме символов разрыва строки:

/keywords/(?P<value>.+)
...