无法从Wordpress REST API中读取阿拉伯字符

问题描述 投票:1回答:1

我正在尝试为Wordpress实现搜索REST API。一切都可以用英语正常运行,但是,当我在URL中输入一些阿拉伯语时,它将告诉我rest_no_route

这是我的英语工作版本

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

完成一些research之后,建议我将[ء-ي]添加到我的正则表达式中。但是,由于阿拉伯语从右到左读取,因此我不确定在正则表达式中的添加位置。

我尝试过(?P<value>[ء-ي][\w+].+)[ء-ي](?P<value>[\w+].+),但仍然无法使用。

有什么建议吗?

php regex wordpress arabic wordpress-rest-api
1个回答
0
投票

默认情况下,PHP中的[\w速记不匹配Unicode字母和数字。您将需要使用(*UCP)(可能与(*UTF)一起使用)PCRE动词,使其与所有Unicode字母/数字匹配。参见example

根据您的情况,您可以简单地删除\w+并保留.+来匹配除换行符以外的任何1+个字符:

/keywords/(?P<value>.+)
© www.soinside.com 2019 - 2024. All rights reserved.