我最近在使用Wordpress时遇到了一些问题,并且在PHP错误的情况下使用了AJAX响应 警告:preg_match():编译失败:第555行/home/example/public_html/example.com/wp-includes/rest-api.php中偏移52处的不匹配括号
第555行是preg_match
这让我(两个孩子你没有)参加两个星期 我开始输入问题,但是可能会发生很多事情,因为我输入了问题并将代码分解为答案,行动和代码在下面
我有这个动作:
add_action('rest_api_init', function () {
register_rest_route('sutcalendar/v1', '/sendAgentRequest/(?P<ampm>\d+)/(?P<time>\d+)/(?P<day>\d+)/(?P<month>\d+)/(?P<year>\d+)', array(
'methods' => 'GET',
'callback' => 'sut_set_agent_offer_endpoint',
));
});
这是调用它的js脚本(所有填充的字段都会调用exampl api调用)
$.ajax({
url: "https://www.standuptalent.com/wp-json/sutcalendar/v1/sendAgentRequest/"
+ ampm + '/'
+ timeVal + '/'
+ day + '/'
+ month + '/'
+ year + '/',
dataType: 'json',
type: 'get',
contentType: 'json',
success: function (data, textStatus, jQxhr) {
console.log(data);
console.log(textStatus);
console.log(jQxhr);
}
});
它产生的网址:
https://www.example.com/wp-json/sutcalendar/v1/sendAgentRequest/pm/0830/27/2/2017/
最后是终点本身:
function sut_set_agent_offer_endpoint(WP_REST_Request $request) {
$json = json_encode(array("post" => $_POST, "get" => $_GET));
echo $json;
return $json;
}
返回的错误是PHP WP错误:
Warning: preg_match(): Compilation failed: unmatched parentheses at offset 52 in /home/example/public_html/example.com/wp-includes/rest-api.php on line 555
第555行是preg_match
这让我(两个孩子你没有)两个星期
答案 0 :(得分:0)
这样做的唯一原因是我改变了'ampm&amp;和&#39; timeVal&#39;从小时和分钟到新名称,忘了我还没有改变动作的正则表达式,
将添加操作终结点更改为
add_action('rest_api_init', function () {
register_rest_route('sutcalendar/v1', '/sendAgentRequest/(?P<ampm>\W+)/(?P<time>\W+)/(?P<day>\d+)/(?P<month>\d+)/(?P<year>\d+)', array(
'methods' => 'GET',
'callback' => 'sut_set_agent_offer_endpoint',
));
});
意味着前两个是任何url编码的字符,这也意味着您可以通过JavaScripts encodeURI(value)函数首先通过url编码来发布文本区域和多字文本字符串。
无论何时你正在改变点或创建一个新点,并且遇到问题,请使用regexp对字符串进行编码并使用\ X *进行匹配