Avatar billede donslund Nybegynder
04. februar 2008 - 11:32 Der er 12 kommentarer og
1 løsning

Vis kun aktive links.

Kan man checkke om et link er aktivt på en smart måde?

Har en række links i en db. Vil gerne ud for hvert link når jeg viser det på skærmen vise om det er aktivt eller dødt.

Havde tænkt på noget fopen() og så reagere på om den kan eller ikke. Men for det første tager det lang tid og for det andet ved jeg ikke om det virker.

Nogen gode ideer?
Avatar billede yHec Novice
04. februar 2008 - 12:10 #1
function pingip($url, $port){
    if (@fsockopen($url, $port, $errno, $errstr, 5)){
          return "<strong>online</strong>";
    } else {
          return "<strong>offline</strong>";
    }
}

echo pingip ("www.eksperten.dk", 80);

Virker for mig!

/y
Avatar billede jakobdo Ekspert
04. februar 2008 - 12:47 #2
Hvis du har php5, burde du tage et kig på: get_headers() og tjekke om respons er 220
pingip - www.eksperten.dk, vil give svar, selvom du får svaret 404 NOT FOUND.
Avatar billede donslund Nybegynder
04. februar 2008 - 12:54 #3
y - Det virker også for mig.
Avatar billede yHec Novice
04. februar 2008 - 12:58 #4
jakobdo > det synes jeg nu ikke det gør.

donslund > godt:-)

/y
Avatar billede jakobdo Ekspert
04. februar 2008 - 13:03 #5
y: Hvad mener du?
Avatar billede donslund Nybegynder
04. februar 2008 - 13:23 #6
Jeg har testet begge løaninger og begge ser ud til at virke. Det største problem er egentligt hastigheden.
Begge 2 virker meget langsomme.
Avatar billede jakobdo Ekspert
04. februar 2008 - 14:08 #7
Det tager noget tid ja, jeg har lige lavet siden: http://www.codebreaker.dk/exp/817921exp.php
Avatar billede donslund Nybegynder
04. februar 2008 - 14:13 #8
Ca samme kode som jeg er kommet frem til:

$headers = @get_headers("http://".$row[adresse]);
        if($headers[0]!="HTTP/1.1 200 OK"){
            print "<span style='color:#ff0000'>offline</span>";
        } else {
            print "online";
        }
Avatar billede yHec Novice
04. februar 2008 - 14:14 #9
Jakob > hvis jeg kører ovenstående funktion på fx min egen ip (der ikke er aktiv - det er blot min router), får jeg en 404-fejl, samt en melding om, at jeg ikke er online...

Donslund> Hvis du har en masse links, så tager det tid... Den skal jo chekke dem alle, og det er ligesom, når man venter på at en side loader (sådan ca)
/y
Avatar billede jakobdo Ekspert
04. februar 2008 - 14:34 #10
Men spørgsmålet er jo også hvad man vil tjekke for.
Vil man se om noget svarer (ping) så er det din løsning.
Vil man teste om der er en korrekt side visning, så er det min løsning.
Avatar billede donslund Nybegynder
04. februar 2008 - 21:01 #11
Det må være Jakobdo der har den rigtigste løsning som jeg ser det. Tak.
Avatar billede jakobdo Ekspert
04. februar 2008 - 22:22 #12
Svar!
Avatar billede jakobdo Ekspert
05. februar 2008 - 06:52 #13
Takker for point.
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