cURL 输出整个响应
cURL outputting the entire response
我正在使用 Microsoft Congnitive WebLM 对一组单词进行分词,它正在输出整个 cURL 请求,但我不知道如何使用结果。
我使用的代码:
$word = 'iwansttobreakfree';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://api.projectoxford.ai/text/weblm/v1.0/breakIntoWords?model=query&text=" . $word);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Ocp-Apim-Subscription-Key: [subscription key removed for stack overflow]"
));
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
我得到的结果是
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 320
Content-Type: application/json; charset=utf-8
Expires: -1
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
apim-request-id: ef73d48d-ab35-4fa5-a346-c57339415824
Date: Thu, 21 Jul 2016 20:00:12 GMT
{"candidates":[{"words":"i want to break free","probability":-7.1759999999999993},{"words":"iwant to break free","probability":-9.1660000000000021},{"words":"i want to breakfree","probability":-9.547},{"words":"i wan t to break free","probability":-9.8390000000000022},{"words":"iwanttobreakfree","probability":-9.877}]}
--------
bool(true)
有人知道我如何使用结果 json,而不输出整个 cURL 响应吗?
你需要这样设置:
curl_setopt($ch, CURLOPT_HEADER, true);
为此:
curl_setopt($ch, CURLOPT_HEADER, false);
我想通了,真是愚蠢的错误:/
通过将 CURLOPT_RETURNTRANSFER
设置为 true
并将 CURLOPT_HEADER
设置为 false
,将返回 json 字符串。
这是新代码:
$word = 'iwanttobreakfree';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://api.projectoxford.ai/text/weblm/v1.0/breakIntoWords?model=query&text=" . $word);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Ocp-Apim-Subscription-Key: [key removed for stack overflow]"
));
$result = curl_exec($ch);
curl_close($ch);
echo "\n--------\n";
$json = json_decode($result);
var_dump($json);
结果是:
object(stdClass)#6 (1) {
["candidates"]=>
array(5) {
[0]=>
object(stdClass)#1 (2) {
["words"]=>
string(20) "i want to break free"
["probability"]=>
float(-7.176)
}
[1]=>
object(stdClass)#2 (2) {
["words"]=>
string(19) "iwant to break free"
["probability"]=>
float(-9.166)
}
[2]=>
object(stdClass)#3 (2) {
["words"]=>
string(19) "i want to breakfree"
["probability"]=>
float(-9.547)
}
[3]=>
object(stdClass)#4 (2) {
["words"]=>
string(21) "i wan t to break free"
["probability"]=>
float(-9.839)
}
[4]=>
object(stdClass)#5 (2) {
["words"]=>
string(16) "iwanttobreakfree"
["probability"]=>
float(-9.877)
}
}
}
我正在使用 Microsoft Congnitive WebLM 对一组单词进行分词,它正在输出整个 cURL 请求,但我不知道如何使用结果。
我使用的代码:
$word = 'iwansttobreakfree';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://api.projectoxford.ai/text/weblm/v1.0/breakIntoWords?model=query&text=" . $word);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Ocp-Apim-Subscription-Key: [subscription key removed for stack overflow]"
));
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
我得到的结果是
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 320
Content-Type: application/json; charset=utf-8
Expires: -1
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
apim-request-id: ef73d48d-ab35-4fa5-a346-c57339415824
Date: Thu, 21 Jul 2016 20:00:12 GMT
{"candidates":[{"words":"i want to break free","probability":-7.1759999999999993},{"words":"iwant to break free","probability":-9.1660000000000021},{"words":"i want to breakfree","probability":-9.547},{"words":"i wan t to break free","probability":-9.8390000000000022},{"words":"iwanttobreakfree","probability":-9.877}]}
--------
bool(true)
有人知道我如何使用结果 json,而不输出整个 cURL 响应吗?
你需要这样设置:
curl_setopt($ch, CURLOPT_HEADER, true);
为此:
curl_setopt($ch, CURLOPT_HEADER, false);
我想通了,真是愚蠢的错误:/
通过将 CURLOPT_RETURNTRANSFER
设置为 true
并将 CURLOPT_HEADER
设置为 false
,将返回 json 字符串。
这是新代码:
$word = 'iwanttobreakfree';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://api.projectoxford.ai/text/weblm/v1.0/breakIntoWords?model=query&text=" . $word);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Ocp-Apim-Subscription-Key: [key removed for stack overflow]"
));
$result = curl_exec($ch);
curl_close($ch);
echo "\n--------\n";
$json = json_decode($result);
var_dump($json);
结果是:
object(stdClass)#6 (1) {
["candidates"]=>
array(5) {
[0]=>
object(stdClass)#1 (2) {
["words"]=>
string(20) "i want to break free"
["probability"]=>
float(-7.176)
}
[1]=>
object(stdClass)#2 (2) {
["words"]=>
string(19) "iwant to break free"
["probability"]=>
float(-9.166)
}
[2]=>
object(stdClass)#3 (2) {
["words"]=>
string(19) "i want to breakfree"
["probability"]=>
float(-9.547)
}
[3]=>
object(stdClass)#4 (2) {
["words"]=>
string(21) "i wan t to break free"
["probability"]=>
float(-9.839)
}
[4]=>
object(stdClass)#5 (2) {
["words"]=>
string(16) "iwanttobreakfree"
["probability"]=>
float(-9.877)
}
}
}