Hallo,
Mit dem folgenden Code gelingt es mir Daten aus der GND abzufragen und per API in die eigene Datenbank zu integrieren.
Das Problem ist das nur bis zu 765 Zeichen in das Datenbankfeld 'classification_element_name' eingetragen werden. Sobald ich die Zahl auf 766 erhöhe bleibt das Datenbankfeld leer. Auch wenn ich bpsw. versuche die Zeichen ab der Stelle 765 bis 800 ausgeben zu lassen bleibt das Feld leer. Woran kann das liegen?
Danke und Grüße
Mit dem folgenden Code gelingt es mir Daten aus der GND abzufragen und per API in die eigene Datenbank zu integrieren.
PHP-Code:
<?php
//PHP Infos anzeigen lassen
//phpinfo();
header('Content-type: text/html; charset=utf-8');
// Inhaltstyp und Zeichenkodierung für Skript festlegen
$User_Agent = 'Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0';
$id = $_POST["id"];
// Übernahme Formulareingabe
$url = "http://hub.culturegraph.org/entityfacts/$id";
// URL festlegen
$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';
$request_headers[] = 'X-picturemaxx-api-key: key';
$request_headers[] = "Authorization: Bearer token";
$ch = curl_init($url);
// Initiate curl
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, "");
// Anfrage optimieren
// Execute
$result = curl_exec($ch); // Performs the Request, with specified curl_setopt() options (if any).
curl_close($ch);
// Closing
$data = json_decode($result, true); // Dekodiert eine JSON-Zeichenkette, Übergibt an Variable
$url2 = "https://bpk.bs.picturemaxx.com/api/v1/editing/classifications/42/elements/2156013";
$alternativData = array();
foreach($data['variantName'] as $alternativ) {
echo $alternativ . " ; ";
$alternativData[] = $alternativ;
}
$dataj = array (
'classification_element_parent_id' => 0,
'classification_element_matchcode' => '',
'classification_element_foreignref' => '',
'localized' =>
array (
'en-us' =>
array (
'classification_element_name' => '',
),
'de-de' =>
array (
'classification_element_name' => substr(implode(' ; ', $alternativData),0 ,765),
),
),
);
$data_json = json_encode($dataj);
$ch = curl_init($url2);
// Set the url
curl_setopt( $ch, CURLOPT_URL, $url2 );
curl_setopt($ch, CURLOPT_USERAGENT, $User_Agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
// Execute
$result2 = curl_exec($ch); // Performs the Request, with specified curl_setopt() options (if any).
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Closing
curl_close($ch);
echo "<br><br>"; var_dump($alternativData);
?>
PHP-Code:
$dataj = array (
'classification_element_parent_id' => 0,
'classification_element_matchcode' => '',
'classification_element_foreignref' => '',
'localized' =>
array (
'en-us' =>
array (
'classification_element_name' => '',
),
'de-de' =>
array (
'classification_element_name' => substr(implode(' ; ', $alternativData),0 ,765),
),
),
);
Kommentar