<?php
// ------------------------------------------------------------------------- //
// Teste le contenu d'une URL. //
// ------------------------------------------------------------------------- //
// Auteur: Antoine //
// Email: bajolet@toiletoine.net //
// Web: http://www.toiletoine.net //
// ------------------------------------------------------------------------- //
function test_url($url)
{
$components = parse_url($url);
$host = $components["host"];
$port = (int)$components["port"];
$path = $components["path"];
$query = $components["query"];
if (!$port)
{
$cport = 80;
}
$fp = fsockopen($host,$cport);
if ($port)
$port = ":".$port;
else
$port ="";
if (!$fp) {
$status = "NOHOST";
}
else {
if ($query)
$path .= "?".$query;
$req =
"GET $path HTTP/1.1
Host: $host$port
";
$request =
"GET $path HTTP/1.1
Host: $host$port
Accept: */*
Accept-Charset: iso-8859-1
Accept-Encoding: identity
User-Agent: phpInfo.net/2000
";
fputs($fp,$request);
$answer = fgets($fp,4096);
if (ereg("([2-3][0-9]{2})", $answer,$regs) )
{
while ($answer)
{
fputs($fp,$req);
$answer = fgets($fp,4096);
if (ereg("Location: *(.*)",$answer,$regs))
{
$redirs ++;
if ($redirs > 4)
{
$answer = "";
$status = "LOOP";
}
$path = $regs[1];
//tester ici si le path est sur le même serveur
$req = "GET $path HTTP/1.1
Host: $host$port
";
}
elseif (eregi("Content-Type: *(text/[a-z]*)",$answer,$regs))
{
if ($regs[1] == "text/html" or eregi('[.]txt$',$path))
{
$status = "HTML";
}
elseif ($regs[1] == "text/")
{
$boucle = 0;
while($boucle < 5)
{
fputs($fp,$req);
$answer = fgets($fp,4096);
if (eregi("<html",$answer))
{
$status = "HTML";
$boucle = 3;
}
$boucle++;
}
}
else
{
$status = "TEXT";
}
$answer = "";
}
elseif (eregi("Content-Type:",$answer))
{
$status = "NOTEXT";
$answer = "";
}
}
fclose($fp);
}
else
{
$status = "NOFILE";
}
}
return $status;
}
$demoUrl = htmlspecialchars(trim(stripslashes($demoUrl)));
echo "<FORM METHOD=POST ACTION=''>";
echo "<B>Adresse du site</B><BR>";
echo "<INPUT TYPE='text' NAME='demoUrl' VALUE=\"".$demoUrl."\">\n";
echo " <INPUT TYPE='submit' VALUE='Tester'>";
if ($demoUrl != "") {
echo " <B>".test_url($demoUrl)."</B>";
}
echo "</FORM>";
?>