hallo ihr lieben 
wieder einmal habe ich ein problem, deren lösung ich alleine nicht fündig werde. (nicht, dass ich es nicht versucht hätte!)
bitte nicht fragen, warum das was ich vorhabe sinn macht oder eben nicht. ich denke, das müsste man getrennt disskutieren. hier geht es mir lediglich um die lösung meines problemes, bzw. um alternativen.
also zum problem:
wie der titel schon verät, möchte ich einen request in php absetzen (vorzugsweise einen GET request). das skript soll sofort nach dem absetzen beendet werden. d.h. es soll die antwort des requestes garnicht abgewartet werden. bisher habe ich das so gemacht:
das funktioniert so schon ganz gut ... zumindest solange eine verbindung hergestellt werden kann ... ganz genau: gebe ich eine "nicht" url ein, dann kommt E_WARNING: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known
und genau das schaffe ich nicht zu unterdrücken. das @ vor fsockopen hat scheinbar keine wirkung. da mir ein solches verhalten bei curl nicht bekannt war, habe ich es mit dieser funktion versucht ... und tatsächlich funktioniert das auch recht fehlerfrei ... falsche urls werden ohne E_WARNINGs als solche erkannt und meine funktion liefert false. das problem ist nun, dass wenn die seite existiert und der request gesendet wird, auch notwendigerweise die antwort gelesen wird, was meinem skript zeit kostet (abhängig von der gegenseite einige sekunden), die verschwendet ist.
und nun die frage: wie kann ich entweder die E_WARNING umgehen (ohne das error log level zu ändern) oder das ganze mit curl realisieren?
vielen dank,
LG

wieder einmal habe ich ein problem, deren lösung ich alleine nicht fündig werde. (nicht, dass ich es nicht versucht hätte!)
bitte nicht fragen, warum das was ich vorhabe sinn macht oder eben nicht. ich denke, das müsste man getrennt disskutieren. hier geht es mir lediglich um die lösung meines problemes, bzw. um alternativen.
also zum problem:
wie der titel schon verät, möchte ich einen request in php absetzen (vorzugsweise einen GET request). das skript soll sofort nach dem absetzen beendet werden. d.h. es soll die antwort des requestes garnicht abgewartet werden. bisher habe ich das so gemacht:
PHP-Code:
function GetRequestNoAnswer($url)
{
//http:// vorstellen, wenn nicht vorhanden
if (strpos($url, "http://") === false) $url = "http://".$url;
//Request senden
if (($fp = @fsockopen($host = @parse_url($url, PHP_URL_HOST), 80, $errno, $errstr, 1)) === false) return false;
else @fwrite($fp, "GET /".@parse_url($url, PHP_URL_PATH)." HTTP/1.1\r\nHost: $host\r\nConnection: Close\r\n\r\n");
//zurückgeben
return @fclose($fp);
}
und genau das schaffe ich nicht zu unterdrücken. das @ vor fsockopen hat scheinbar keine wirkung. da mir ein solches verhalten bei curl nicht bekannt war, habe ich es mit dieser funktion versucht ... und tatsächlich funktioniert das auch recht fehlerfrei ... falsche urls werden ohne E_WARNINGs als solche erkannt und meine funktion liefert false. das problem ist nun, dass wenn die seite existiert und der request gesendet wird, auch notwendigerweise die antwort gelesen wird, was meinem skript zeit kostet (abhängig von der gegenseite einige sekunden), die verschwendet ist.
und nun die frage: wie kann ich entweder die E_WARNING umgehen (ohne das error log level zu ändern) oder das ganze mit curl realisieren?
vielen dank,
LG
Kommentar