Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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_Curl - Fatal编程技术网

Php 发生在curl身上的奇怪事情

Php 发生在curl身上的奇怪事情,php,curl,Php,Curl,我有一个项目需要从XMLAPI获取数据,我正在使用php的cUrl从API获取数据。现在数据下载如下 { "url":"the url", "content_type":"text\/xml; charset=iso-8859-1", "http_code":200, "header_size":222, "request_size":600, "filetime":-1, "ssl_verify_result":0, "redirect_co

我有一个项目需要从XMLAPI获取数据,我正在使用php的cUrl从API获取数据。现在数据下载如下

{  
   "url":"the url",
   "content_type":"text\/xml; charset=iso-8859-1",
   "http_code":200,
   "header_size":222,
   "request_size":600,
   "filetime":-1,
   "ssl_verify_result":0,
   "redirect_count":0,
   "total_time":0.942642,
   "namelookup_time":8.4e-5,
   "connect_time":0.179581,
   "pretransfer_time":0.17966,
   "size_upload":326,
   "size_download":12720,
   "speed_download":13493,
   "speed_upload":345,
   "download_content_length":-1,
   "upload_content_length":326,
   "starttransfer_time":0.576183,
   "redirect_time":0,
   "redirect_url":"",
   "primary_ip":"81.93.213.42",
   "certinfo":[  

   ],
   "primary_port":80,
   "local_ip":"192.169.233.75",
   "local_port":43479
}
  • 1请求获取数据,123kb文件
  • 1请求获取数据特定信息600字节文件
  • 1..10获取图像的请求(最大170kb文件)
按照从下到上的顺序嵌套,获得的数据是一所学校、一个活动日历和一个图像库

你看,上面有12个卷曲

我已经调试了我的应用程序逻辑,数据进入内存后执行操作的延迟为3秒

curl_getinfo获得的定时如下

{  
   "url":"the url",
   "content_type":"text\/xml; charset=iso-8859-1",
   "http_code":200,
   "header_size":222,
   "request_size":600,
   "filetime":-1,
   "ssl_verify_result":0,
   "redirect_count":0,
   "total_time":0.942642,
   "namelookup_time":8.4e-5,
   "connect_time":0.179581,
   "pretransfer_time":0.17966,
   "size_upload":326,
   "size_download":12720,
   "speed_download":13493,
   "speed_upload":345,
   "download_content_length":-1,
   "upload_content_length":326,
   "starttransfer_time":0.576183,
   "redirect_time":0,
   "redirect_url":"",
   "primary_ip":"81.93.213.42",
   "certinfo":[  

   ],
   "primary_port":80,
   "local_ip":"192.169.233.75",
   "local_port":43479
}
此数据被编码为json,因为它将放在日志服务器上

所以我的问题是,如果curl需要1s才能从API获得响应,并且我的逻辑在2到3秒之间执行,那么响应的时间是1分钟,接下来的50秒在哪里

需要注意的是,我的网站运行在godaddy上,这是一个https下的VPS,api运行在HTTP上,这有什么关系吗


由于提前解决了问题,服务器延迟了curl请求的数据下载,因此我与托管提供商联系,消除了下载延迟。因此,curl请求是由服务器延迟的,而不是代码或curl句柄本身。感谢所有评论。

谢谢Brad,编辑得很好。我必须问一个明显的问题:您使用的是curl\u multi吗?您是说12个单独的请求吗?getinfo返回的总时间与上次请求相关。所以12个*请求=XXX。将数据缓存到某个地方。我无法缓存请求,问题是一个请求需要大约1秒的时间。因此,这将是12个请求*1秒,12秒,其中一个持续一分钟。我使用curl_multi进行图像库下载过程。谢谢