如果有 10,000 多条记录,则必须使用批量。此功能非常适合获取所有记录。然后你可以找到你需要的任何号码。
function matter_ID_display ( $token,$refresh_toke ) {
// this returns all the matter ID and display name
//adding X-BULK
$header = 'Authorization: bearer '.$token."\r\n"."X-BULK: true";
//echo $header."\r\n";
$offset = 0;
$url = 'https://app.clio.com/api/v4/matters.json?offset='.$offset.'&fields=id,display_number';
$cookie_jar = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies.txt';
$cookie_jar2 = 'C:\Sites\Project for simmons and flecter\PHP\tmp\cookies2.txt';
//echo $url."\r\n";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_VERBOSE, true); //used for trouble shooting.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
//print "curl response is:" . $resp;
if( !$resp ) {
die('Error: "' . curl_error( $ch ) . '" - Code: ' . curl_errno( $ch ) );
}
else if ( 200 != curl_getinfo( $ch, CURLINFO_HTTP_CODE ) ) {
echo "Expected code 202";
echo "\n";
echo "Response HTTP Status Code : " . curl_getinfo( $ch, CURLINFO_HTTP_CODE );
echo "\n";
//echo "Response HTTP Body : " . $resp;
}
//$resp = json_encode($resp);
$headers = get_headers_from_curl_response($resp);
//$headers = json_encode($headers);
//print_r ($headers);
$url = $headers["Location"];
echo "url for getting the bulk data\r\n";
echo $url."\r\n";
echo "\n";
curl_close($ch);
//sleep for x seconds
//have to sleep due to processing at clio
$seconds = 20;
echo "Sleeping for ".$seconds." seconds\r\n";
sleep($seconds);
echo "\n";
// seperate curl_
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_COOKIEJAR => $cookie_jar2,
CURLOPT_COOKIEFILE=> $cookie_jar2,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
CURLOPT_SSL_VERIFYPEER => false, // Disabled SSL Cert checks
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_RETURNTRANSFER => true, // return web page
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo 'Curled first time';
echo "\n";
// have to curl two times one without authorization
echo "\n";
Echo "cURL repeat";
echo "\n";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_COOKIEJAR => $cookie_jar2,
CURLOPT_COOKIEFILE=> $cookie_jar2,
CURLOPT_CUSTOMREQUEST => "GET",
//CURLOPT_HTTPHEADER => array("authorization: Bearer ".$token),
CURLOPT_SSL_VERIFYPEER => false, // Disabled SSL Cert checks
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_RETURNTRANSFER => true, // return web page
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else
{echo 'Good Reponse from Curl second time';
echo "\n";}
}
$response_Decode = json_decode($response);
//print_r ($response_Decode);
// got the data. Now just need to turn to a clean array and save to file.
//die('Before Array clean up');
//clean and make into an array
$response_Decode=$response_Decode->data;
$response_Decode=$response_Decode[0];
//print_r ($response_Decode);
//die(); //For testing
$matter_array = array();
if(!empty($response_Decode->data) && is_array($response_Decode->data)) {
foreach ($response_Decode->data as $info) {
$d = array();
$d[] = $info->display_number;
$d[] = $info->id;
$matter_array[] = $d;
}
}
print_r($matter_array); //For testing
die(); //For testing
//matter_array is a full array of all matter ID and Matter Display numbers
return $matter_array; }