connected()) throw new Exception("Connexion requise", 401); if(!isset($_['url'])) throw new Exception("Url d'entrée non définie"); $url = base64_decode($_['url']); try{ $request = @get_headers($url, true); $error = ''; if(!$request) $response['state'] = false; if(is_array($request) && isset($request[0])){ $headers = array(); // Make more sane response foreach($request as $h => $v) { if(is_int($h)) $headers[$h]['Status'] = $v; else { if(is_string($v)) $headers[0][$h] = $v; } } $lastHeader = end($headers); if(!preg_match('/ 200 /i',$lastHeader['Status'])) throw new Exception($lastHeader['Status']); }else{ throw new Exception('HTTP/1.1 404 Not Found'); } }catch(Exception $e){ $code = 0; list($protocol,$code,$sentence) = explode(' ',$e->getMessage()); $mapping = array( 400 => 'La syntaxe de la requête est erronée.', 401 => 'Utilisateur non authentifié', 402 => 'Paiement requis pour accéder à la ressource.', 403 => 'Accès refusé', 404 => 'Adresse introuvable ou momentanément indisponible', 495 => 'Problème de certificat SSL', 498 => 'Le jeton a expiré ou est invalide.', 500 => 'Le serveur rencontre des erreurs internes', 502 => 'En agissant en tant que serveur proxy ou passerelle, le serveur a reçu une réponse invalide depuis le serveur distant.', 503 => 'Service temporairement indisponible ou en maintenance.', ); if(isset($mapping[$code])){ $error = $mapping[$code]; }else{ $error = 'raison indéfinie ('.$code.' - '.$sentence.')'; } } if(!empty($error)){ ?>