PHP Json不适用于jsoncallback

PHP Json不适用于jsoncallback,php,jquery,json,api,call,Php,Jquery,Json,Api,Call,上述代码对我不起作用,但如果我删除jquery1110147995648865074196_1507974360762(),那么它工作正常 工作示例 $Data = 'jQuery1111014795648865074196_1507974360762({"type":"my","start":1,"end":20,"total":20})'; $D2 = json_decode($Data); echo $Result_Count = $D2->{'total'}; 请尝试以下操作:

上述代码对我不起作用,但如果我删除
jquery1110147995648865074196_1507974360762()
,那么它工作正常

工作示例

$Data = 'jQuery1111014795648865074196_1507974360762({"type":"my","start":1,"end":20,"total":20})';
 $D2 = json_decode($Data);
echo $Result_Count = $D2->{'total'};
请尝试以下操作:

$Data = '{"type":"my","start":1,"end":20,"total":20}';
$D2 = json_decode($Data);
echo $Result_Count = $D2->{'total'}

这将使用
regex
json
字符串中删除前缀和括号。

如果jquery1110147995648865074196_1507974360762是静态的,则使用php的str_replace函数将其与括号一起删除

这是什么->
jquery11101479564865074196_1507974360762
它来自哪里?为什么要添加它?在哪一端它不起作用
php
jQuery
?它来自API。它是jsoncallback…我不能删除它,因为它来自api。PHP结束不工作…请显示您的代码。您还可以提供API url。(在您的问题中添加这两个选项)由您指定JSONP回调包装器。通常jQuery会传递一个名为“callback”的get参数它本身包含允许您检索有效负载的临时回调名称。Geolim4@yes you's right,但在API返回结果中没有回调,它是空的……如果它不是静态的,那么在php的响应try substring函数中jquery111014799564886507196_1507974360762的长度必须相同。否则,最后一个选项是使用strpos并找到第一个开始括号的位置,然后使用substring删除字符串之前的内容function@HiteshAghara不,这不会中断json字符串。因为它将从字符串的开头开始,停在
删除该字符串,然后删除最后一个
。如果这些字符之间有任何字符,则不会更改它们。
$Data = 'jQuery1111014795648865074196_1507974360762({"type":"my","start":1,"end":20,"total":20})';
$Data = preg_replace("/^[\w]+[(]|[)]$/", '', $Data);
$D2 = json_decode($Data);
echo $Result_Count = $D2->total;