Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php curl返回值是否有字符串长度限制?_Php_Json_Curl_Substr - Fatal编程技术网

php curl返回值是否有字符串长度限制?

php curl返回值是否有字符串长度限制?,php,json,curl,substr,Php,Json,Curl,Substr,我有一段php代码来curl一个API端点,它返回一个json字符串。 但是字符串被截断为16042个字符长,因此我的json_解码函数由于json字符串格式无效而失败 我的问题是“旋度返回值有限制吗?” $ch = curl_init (); $timeout = 5; curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_

我有一段php代码来curl一个API端点,它返回一个json字符串。 但是字符串被截断为16042个字符长,因此我的json_解码函数由于json字符串格式无效而失败

我的问题是“旋度返回值有限制吗?”

    $ch = curl_init ();
    $timeout = 5;
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
    curl_setopt ( $ch, CURLOPT_HEADER, true );       
    $output = curl_exec ( $ch );
    $header_size = curl_getinfo ( $ch, CURLINFO_HEADER_SIZE );
    $body = substr ( $output, $header_size );
或者substr功能正在将其关闭?

    $ch = curl_init ();
    $timeout = 5;
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
    curl_setopt ( $ch, CURLOPT_HEADER, true );       
    $output = curl_exec ( $ch );
    $header_size = curl_getinfo ( $ch, CURLINFO_HEADER_SIZE );
    $body = substr ( $output, $header_size );
$ch = curl_init ();
$timeout = 60;
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );      
$output = curl_exec ( $ch );
echo $output;
考试

    $ch = curl_init ();
    $timeout = 5;
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
    curl_setopt ( $ch, CURLOPT_HEADER, true );       
    $output = curl_exec ( $ch );
    $header_size = curl_getinfo ( $ch, CURLINFO_HEADER_SIZE );
    $body = substr ( $output, $header_size );

CURLOPT_标题
包括输出中的标题。需要将其设置为
false
或将其删除。点击查看

$body=substr($output,$header\u size)为什么这一行???@MASIDDIQUI返回消息包含标题“HTTP/1.1 200 OK Server:openresty/1.9.3.1日期:Wed,Dec 2016 06:07:14 GMT内容类型:应用程序/json内容长度:802244连接:保持活动缓存控制:无缓存Pragma:无缓存过期:-1 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET访问控制允许来源:*访问控制允许凭据:true“只需要身体不要那样做。。检查
$output
是否有效json@MASIDDIQUI事实并非如此,我已经证实$输出包括我在上面注释的头字符串,当我请求返回20条记录时,$body获得有效的json消息,但如果我请求1000条记录,它将被截断。我还尝试使用var_dump($output),值也会被切碎。将超时值从5秒增加可能会有所帮助。虽然此代码可能会解决问题,但应该始终添加一个解释,说明代码的作用以及它解决问题的原因。