PHPスクリプトでエラーが発生する必要がありますが、返されたテキストに「OK」と表示されます。なぜ私はそれを使うことができる変数に入れられるのではなく、エラーチャンネルに出てくるのですか? これは私のコードです:cUrlからの出力
<?php
$url = 'https://rest.tsheets.com/api/v1/jobcodes';
$api_token ="********";
$headers = array();
$headers[] = "Authorization: Bearer {$api_token}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$o = curl_exec($ch);
echo "Error:" . curl_error($ch);
echo "This is output: " . var_dump($o);
?>
出力は次のようになります。
Error:string(23256) "HTTP/1.1 200 OK
Date: Fri, 22 Jul 2016 15:18:14 GMT
Server: Apache
Cache-Control: no-cache, must-revalidate
Expires: 0
Transfer-Encoding: chunked
Content-Type: application/json
{
"results": {
"jobcodes": {
"493387": {
"id": 493387,
"parent_id": 0,
"assigned_to_all": false,
"billable": false,
"acti
.
.
.
"more": true
}"
This is output:
だから、何もreturntransferが設定されているにもかかわらず、返される変数に入れていません。実際にエラーがあるかどうか、それを引き起こしているPHP.ini設定であるかどうかはわかりません。それがOKを返すという事実は、スクリプトが問題ないことを示唆しています。このスクリプトは、Webサーバー上でホストされていても動作しますが、WindowsのPCから実行されており、cUrlはデータを返していません。誰も私が修正する必要があることをアドバイスできますか?
sererがsslでない場合は、 curl_setopt($ ch、CURLOPT_SSL_VERIFYHOST、0);を使用してください。 curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、0); –
私はすべてがうまくいくのを見ることができます。これを試してみてください$ json = json_decode($ o、true); print_r($ json); –