簡體   English   中英

PHP-使用URL的增加ID循環cURL

[英]PHP - Loop cURL with increase id of URL

使用以下代碼,可以通過GND接口接收帶有ID的名稱(gnd中的每個名稱都可以通過ID尋址)。 這可行。

現在,我想使用cURL循環同時獲取許多名稱。 URL的ID必須始終增加1,並且cURL請求必須循環。 我怎樣才能做到這一點?

通過此代碼,我可以從GND數據庫接收示例名稱

<?php

header('Content-type: text/html; charset=utf-8');
$User_Agent = 'Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0';

$url = "http://hub.culturegraph.org/entityfacts/118600001";      

$request_headers = [];
$request_headers[] = 'Accept: application/json';
$request_headers[] = 'charset=utf-8';
$request_headers[] = 'Content-Type: application/json; charset=utf-8';
$request_headers[] = 'Accept-Encoding:  gzip, deflate, identity';
$request_headers[] = 'Accept-Language: de,en-US;q=0.7,en;q=0.3';            

for ($i = 1; $i <= 10; $i++)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $User_Agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, "");

$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
}
curl_close($ch);

$data = json_decode($result, true);
if ($code == 200) {
$data = json_decode($result, true);
echo 'Erfolg';
} else {
$error = $data['Error'];
echo 'Beim anfordern der GND-Daten ist ein Fehler aufgetreten: Fehlercode ' . $error;
echo ' <a href="PHP_skript_login.php">Zurueck</a><br />';
}
var_dump($data['preferredName']);

ID為118600001的URL的結果= Gerhardt von Reutern

但是如何修改代碼,以便輸出URL的名稱118600002、118600003等? 因此,它經常被指定。 是100或1000次。

將$ url變量更改為$ base_url之類的內容,即沒有ID的url

$base_url = "http://hub.culturegraph.org/entityfacts/";      

然后在for循環中執行以下操作:

$ch = curl_init($base_url . (118600001 + $i));

此規則可以刪除,這不是必需的:

curl_setopt($ch, CURLOPT_URL, $url);

您還應該在for循環中處理響應,否則,在加載時間過長之后,您只會看到最后一個人的名字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM