Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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,curl能否返回头和体作为单独属性的对象 这就是我现在正在做的。这将返回一个字符串(?),首先是标题,然后是正文: $session = curl_init($url); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session, CURLOPT_HEADER, true); $response = curl_exec($session); echo $response; // string 我想要的是:

curl能否返回头和体作为单独属性的对象

这就是我现在正在做的。这将返回一个字符串(?),首先是标题,然后是正文:

$session = curl_init($url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_HEADER, true);
$response = curl_exec($session);
echo $response; // string
我想要的是:

...
$response = curl_exec($session);
$header = $response->headers;
$body = $response->body;
我看到了一个类似的问题,建议同时请求头和正文,然后解析结果。我不是问这个

我特别要求返回一个
对象
,其主体和标题作为单独的属性


如果答案是“不,那不可能”,那么我会接受这个答案。我也会接受“No
curl
不会这样做,但这里有另一个名为
swurl
(或其他任何名称)的函数,它返回一个对象…”

标题和正文之间用一个空行分隔,您可以在上面拆分:

[$headers, $body] = explode("\r\n\r\n", $response, 2);
面向对象的企业版:

$response = new stdClass();
[$response->headers, $response->body] = explode("\r\n\r\n", curl_exec($session),  2);

纯卷曲:不;是的,你需要多做一点工作。在副本中有几种方法,一定要看前4条。@AbraCadaver我先读了一遍。我的问题不同。这不是重复的。嗨,请重新打开。我已经读过那个问题了我的问题不是duplicate@abracadaver我对我需要的东西非常明确。您已将此标记为重复。事实并非如此。请重新打开。他说他不想这样做(无论出于什么原因)@nogad这个答案表明,将标题和正文分开是多么微不足道。创建一个stdClass对象并设置两个属性同样简单。实际上是两行代码。这正是OP所要求的。@arkascha我完全同意我认为这个问题很愚蠢,但这正是OP想要的,这正是我所想的两条线路:-)@1.21gigawatts我不认为有这个要求,只是顺便提一下其他答案是这样做的,但你不想(不解释原因)。如果您不能执行此答案中的任何代码,请解释为什么不能执行?当你尝试的时候,有没有什么东西在积极地阻止你?如果您只是不喜欢使用stdClass那么
explode
就足以让您围绕
curl.*
函数创建自己的包装类,甚至可以继承它并重载
curl\u exec
,也可以使用explode