Que me conseillez-vous de faire
Je te conseille d'y réfléchir à huit fois
Il y a un gros potentiel de problèmes divers liés à ce genre de système. Je pourrais par exemple bombarder ton site de liens vers un autre site et ton serveur me servirait alors d'outil à
DoS'er ou tout un tas d'autres abus que certains ne manqueront pas de trouver (même par hasard).
J'ai voulu tester la méthode HEAD en PHP et je me suis laissé emporter, je te recopie une routine qui pourrait t'être utile :
error_reporting(E_ERROR);
$status = array();
$urls = array(
'http://localhost/lien1.php',
'http://localhost/lien2.php'
);
$context = stream_context_create(array(
'http' => array(
'method' => 'HEAD'
)
));
foreach ($urls as $k => $url)
{
// $http_response_header est une variable magique qui apparait quand on ouvre un flux HTTP
unset($http_response_header);
$fp = fopen($url, 'r', false, $context);
if ($fp)
{
// Ça a marché, on présume une réponse 200
$code = 200;
fclose($fp);
}
elseif (isset($http_response_header))
{
// Voir http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
if (preg_match('#^HTTP.* ([1-5][0-9][0-9])#', $http_response_header[0], $m))
{
$code = $m[1];
}
else
{
// Ne devrait pas arriver
$code = 'wtf';
}
}
else
{
// Timeout?
$code = 500;
}
$status[$code][] = $url;
}
Clique sur les fonctions que tu ne connais pas, le manuel est très bien à ce sujet. Inspire-t'en si tu le souhaites, mais je n'ai pas prévu de faire du support dessus donc j'espère que tu t'en sortiras
