<?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
"&nbsp;&nbsp;<INPUT TYPE='submit' VALUE='Tester'>";
if (
$demoUrl != "") {
  echo
"&nbsp;&nbsp;<B>".test_url($demoUrl)."</B>";
}
echo
"</FORM>";

?>