透過循環的PHP API cURL,取得並寫入文件中的所有分頁數據
P粉652523980
P粉652523980 2023-09-01 10:42:29
0
1
606
<p>作為一個對於進行API請求和適當編碼有些新手,我希望能夠得到幫助,編寫適當的循環代碼,將遊標移動到下一頁並返回所有數據,直到沒有更多的頁面為止。我的初始程式碼可以取得50個結果的第一頁,並且沒有循環語句。我只需要幫助編寫適當的循環。 </p> <p>初始程式碼如下。它可以很好地獲取結果的第一頁。我將結果輸出到螢幕上,只是為了測試看看輸出的內容。程式碼中沒有任何錯誤處理。 </p> <p><strong>我需要在程式碼中加入循環,直到hasMore為false,然後將資料寫入/追加到我的檔案中。 </strong></p> <p>API文件指示我可以透過以下方式移動遊標並取得下一頁。 此端點透過遊標進行分頁。 pageInfo屬性將包含是否有更多結果的資訊:{"cursor": "Mg", "hasMore": true}。如果hasMore為true,則可以將遊標作為查詢字串的一部分傳遞到下一個API請求中,以取得下一頁的結果,例如?cursor=Mg。 </p> <pre class="brush:php;toolbar:false;"><?php $url = "myURL/incoming/v2/content"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $headers = array( "Accept: application/json", "Authorization: Bearer key", ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //for debug only! curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $resp = curl_exec($curl); curl_close($curl); var_dump($resp); file_put_contents('CURL-CONTENT.txt', $resp); ?></pre></p>
P粉652523980
P粉652523980

全部回覆(1)
P粉275883973

您遺漏了一些細節。我可以給您一些概括性的幫助。
這可能足以讓您走上正軌。

file_put_contents('CURL-CONTENT.txt',''); // 创建文件并清空其内容(如果文件存在)
$url = "myURL/incoming/v2/content/";
while(true){
  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  
  $headers = array(
     "Accept: application/json",
     "Authorization: Bearer key",
  );
  curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  // 仅用于调试!
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  
  $resp = curl_exec($curl);
  curl_close($curl);
  var_dump($resp);
  file_put_contents('CURL-CONTENT.txt', $resp,FILE_APPEND); // 追加到文件中
 // 获取hasMore的值。
  if(!hasMore){break;}
 // 此时必须还有更多内容,因此准备下一个URL
  $url = "myURL/incoming/v2/content/?Cursor=Mg";
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板