Nicht abfangen, vermeiden lautet die Devise. Es gibt die Option CURLOPT_FILE und auch CURLOPT_WRITEFUNCTION.
O.K., danke für den Tipp, ich hab nun folgendes ausprobiert:
//Daten mittels Curl zurückgeben
function get_data($url){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
if($GLOBALS["wms_proxy"]){
curl_setopt($ch, CURLOPT_PROXY, $GLOBALS["wms_proxy_host"]);
curl_setopt($ch, CURLOPT_PROXYPORT, $GLOBALS["wms_proxy_port"]);
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curl_write_function');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
//Curl write Funktion zum Abfangen von zu großen Datenanfragen
$curl_data_string = "";
function curl_write_function($handle, $data) {
global $curl_data_string;
$curl_data_string .= $data;
if (strlen($curl_data_string) > 100000) {
return 0;
}else {
return strlen($data);
}
}
Verstehe ich das richtig, die Anfrage wird gestoppt, wenn die Länge des z.B. angefragten XML-Dokumentes mehr als 100000 Zeichen hat und gibt dann nix zurück? Wenn die Bedingung erfüllt wird bekomme immer eine 1 zurück. Das klappt auch, muss ich also diese Bedingung abfragen und bei 1 den Curl Request erneut ohne CURLOPT_WRITEFUNCTION absetzen?
??? Jo