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

Php 无法从Wordpress REST API中读取阿拉伯语字符,php,regex,wordpress,arabic,wordpress-rest-api,Php,Regex,Wordpress,Arabic,Wordpress Rest Api,我正在尝试为Wordpress实现SearchRESTAPI。英语的一切都很好,但是,当我在URL中输入一些阿拉伯语时,它会告诉我rest\u no\u route 这是我的英语工作版本 register\u rest\u路由( “搜索”, “/keywords/(?P[\w+].+)”, $args ); 在做了一些之后,有人建议我应该将[ء-ي]添加到我的正则表达式中。然而,我不太确定在哪里添加正则表达式,因为阿拉伯语是从右向左读的 我试过(?p[w+][\w+])或[w+](?p[\w+

我正在尝试为Wordpress实现SearchRESTAPI。英语的一切都很好,但是,当我在URL中输入一些阿拉伯语时,它会告诉我
rest\u no\u route

这是我的英语工作版本

register\u rest\u路由(
“搜索”,
“/keywords/(?P[\w+].+)”,
$args
);
在做了一些之后,有人建议我应该将
[ء-ي]
添加到我的正则表达式中。然而,我不太确定在哪里添加正则表达式,因为阿拉伯语是从右向左读的

我试过
(?p[w+][\w+])
[w+](?p[\w+])
还是不起作用


有什么建议吗?

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

在您的情况下,您只需删除
\w+
并保留
+
即可匹配除换行符以外的任何1+字符:

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

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

在您的情况下,您只需删除
\w+
并保留
+
即可匹配除换行符以外的任何1+字符:

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

如果你有
+
只需使用
“/关键字/(?P.+)”
@WiktorStribiżew非常感谢!!现在我只需要
urldecode
值来运行sql查询。天竺葵!如果你有
+
只需使用
'/keywords/(?P.+)'
@WiktorStribiżew非常感谢!!现在我只需要
urldecode
值来运行sql查询。天竺葵!