Avatar billede dcheng Novice
03. maj 2005 - 21:10 Der er 6 kommentarer og
1 løsning

Valider link.

Hej jeg ville høre om der nogle eksperter som har et script/funktion som kan gå ind at checke om et link til et andet website eksisterer..
Avatar billede webcreator Nybegynder
03. maj 2005 - 21:48 #1
Måske :

$url = "http://tv.tv2.dk";
$indhold = file_get_contents($url);

if ($indhold) {
  echo "URL eksisterer";
}

Scriptet tjekker i hvertfald, om der er kode (html) bag URL'en
Avatar billede mads-lee Nybegynder
03. maj 2005 - 21:52 #2
if( fopen("http://tv.tv2.dk","r") ) {

// siden findes

}

skulle gøre det så behøver man ikke hente alt indhold på siden.
Avatar billede coderdk Praktikant
03. maj 2005 - 22:17 #3
Her er en der rent faktisk checker om siden også er der:

<?php

    function pageExists( $url )
    {
        if ( preg_match( '-^http://([^/:]+)(:(\d+))?(/.*)?-i', $url, $m ) )
        {
            $host = $m[1];
            $port = ( !empty( $m[3] ) ? $m[3] : 80 );
            $path = ( !empty( $m[4] ) ? $m[4] : '/' );
            if ( $fp = @fsockopen( $host, $port, $ern, $ers, 3.0 ) )
            {
                fwrite( $fp, "GET $path HTTP/1.0\nHost: $host\nConnection: Close\n\n" );
                $response = fread( $fp, 512 );
                fclose( $fp );
                if ( preg_match( '-HTTP/\d\.\d (\d+) .+-i', $response, $m ) )
                {
                    return ( $m[1] != '404' );
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
    }
   
    if ( pageExists( 'http://eksperten.dk/' ) )
    {
        echo 'Siden findes.';
    }
    else
    {
        echo 'Siden findes ikke, eller en fejl opstod.';
    }

?>
Avatar billede coderdk Praktikant
03. maj 2005 - 22:19 #4
Hov, ændr "GET $path" til "HEAD $path" - det er nok smartere ;)
Avatar billede webcreator Nybegynder
06. maj 2005 - 21:53 #5
Kunne det bruges?
Avatar billede dcheng Novice
06. maj 2005 - 22:17 #6
Jeg brugte mads-lee's... Det virker fint.
de andre virker alt for 'tunge' selv med mads lee's, hvis jeg fx. laver en loop på 25.

Men jeg siger mange tak
Avatar billede coderdk Praktikant
06. maj 2005 - 22:22 #7
Med hans løsning checker du jo ikke om siden findes, men om serveren svarer - Du vil få falske positiver, så at sige ;P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester