• [^] # Re: Pour les fainéants

    Posté par . En réponse au journal Freetorrent : BitTorrent au service d'une culture libre. Évalué à 5.

    Bonjour,
    Critiquer est facile. Proposer des solutions, c'est mieux.

    Je propose donc que lorsque l'on clique sur le bouton vérifier, les url soient également vérifiées. Celles qui renvoient le code d'erreur 404 pourraient par exemple, être listées en rouge, et un message informant l'utilisateur que certaines de ces url saisies semblent incorrectes : « N'oubliez pas de saisir un espace après vos url, etc...»

    Voici une petite fonction qui retourne le code HTTP renvoyé par une url. Bien sûr, c'est perfectible, c'est juste un début.


    function checkUrl($url)
    {
    ____$urlInfos = parse_url($url) ;
    ____$report = 0 ;

    ____$host = $urlInfos['host'] ;
    ____$path = isset($urlInfos['path']) ? $urlInfos['path'] : '/' ;
    ____$scheme = isset($urlInfos['scheme']) ? $urlInfos['scheme'] : 'http' ;

    ____switch ( $scheme )
    ____{
    ____case 'https' :
    ________$port = isset($urlInfos['port']) ? $urlInfos['port'] : 443 ;
    ________break ;
    ____case 'http' :
    ________$port = isset($urlInfos['port']) ? $urlInfos['port'] : 80 ;
    ________break ;
    ____}

    ____switch ( $scheme )
    ____{
    ____case 'http' :
    ____case 'https' :
    ________if ( $sock = @fsockopen($host,$port) )
    ________{
    ____________fputs($sock, "HEAD $path HTTP/1.0\r\n\r\n") ;
    ____________$line = fgets($sock) ;
    ____________$parsed = explode(' ', $line, 3) ;
    ____________$report = intval($parsed[1]) ;
    ________}
    ________else
    ____________$report = 'error' ;

    ________break ;

    ____case 'ftp' :
    ________/* à implémenter ? */
    ____}

    ____return $report ;
    }


    PS : Comment fait on pour saisir du code dans les commentaires ?

    André.