无法从 Wordpress REST 读取阿拉伯字符 API
Unable to read Arabic character from Wordpress REST API
我正在尝试为 Wordpress 实施搜索 REST API。用英语一切正常,但是,当我在 URL 中输入一些阿拉伯语时,它会告诉我 rest_no_route
.
这是我的英文工作版本
register_rest_route(
'search',
'/keywords/(?P<value>[\w+].+)',
$args
);
完成一些 后,建议我将 [ء-ي]
添加到我的正则表达式中。但是,我不太确定在正则表达式中添加的位置,因为阿拉伯语是从右到左阅读的。
我试过(?P<value>[ء-ي][\w+].+)
或[ء-ي](?P<value>[\w+].+)
还是不行。
有什么建议吗?
PHP中的\w
shorthand默认,不匹配Unicode字母和数字。您需要使用 (*UCP)
(可能与 (*UTF)
)PCRE 动词来使其匹配所有 Unicode letters/digits。看到一个example.
在您的情况下,您可以简单地删除 \w+
并保留 .+
以匹配除换行符以外的任何 1+ 个字符:
/keywords/(?P<value>.+)
我正在尝试为 Wordpress 实施搜索 REST API。用英语一切正常,但是,当我在 URL 中输入一些阿拉伯语时,它会告诉我 rest_no_route
.
这是我的英文工作版本
register_rest_route(
'search',
'/keywords/(?P<value>[\w+].+)',
$args
);
完成一些 [ء-ي]
添加到我的正则表达式中。但是,我不太确定在正则表达式中添加的位置,因为阿拉伯语是从右到左阅读的。
我试过(?P<value>[ء-ي][\w+].+)
或[ء-ي](?P<value>[\w+].+)
还是不行。
有什么建议吗?
PHP中的\w
shorthand默认,不匹配Unicode字母和数字。您需要使用 (*UCP)
(可能与 (*UTF)
)PCRE 动词来使其匹配所有 Unicode letters/digits。看到一个example.
在您的情况下,您可以简单地删除 \w+
并保留 .+
以匹配除换行符以外的任何 1+ 个字符:
/keywords/(?P<value>.+)