04. august 2002 - 19:43Der er
16 kommentarer og 1 løsning
Tjekke links
Hej eksperter....
Jeg står og skal bruge en funktion der tjekker en stribe links fra en databse og udskriver id værdien på dem der ikke virker..... er der nogen der kan hjælpe mig med dette ? har ingen ide om hvad jeg skal gøre for at lave et sådanne script.... men kan selv rette til hvis der er en der har det grundliggende til det.
Og split dem så tilsidst som i eksemplet på html.dk:
arrURLS = Split(arrURLS,",")
Synes godt om
Slettet bruger
04. august 2002 - 19:50#4
nu snakker i om at tjekke dem.... men hvordan får jeg så udskrevet id'et på den der ikke virker... for mig ser koden okay ud at gå til, men det sidste vil jeg lige have med &:-)
<% ' Array med URL'er, som skal chekkes Do While Not rs.EOF arrURLS = arrURLS & "," & rs("Link") arrIDS = arrIDS & "," & rs("ID") rs.MoveNext Loop arrURLS = Split(arrURLS,",") arrIDS = Split(arrIDS,",")
' Array med HTTP header koder arrHTTPcode = Array("100", "101", "200", "201", "202", "203", "204", "205", "206", "300", "301", "302", "303", "304", "305", "307", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "500", "501", "502", "503", "504", "505") ' Array med HTTP header kodernes forklaringer arrHTTPtext = Array("Continue", "Switching Protocols", "OK", "Created", "Accepted", "Non-Authoritative Information", "No Content", "Reset Content", "Partial Content", "Multiple Choices", "Moved Permanently", "Found", "See Other", "Not Modified", "Use Proxy", "Temporary Redirect", "Bad Request", "Unauthorized", "Payment Required", "Forbidden", "Not Found", "Method Not Allowed", "Not Acceptable", "Proxy Authentication Required", "Request Time-out", "Conflict", "Gone", "Length Required", "Precondition Failed", "Request Entity Too Large", "Request-URI Too Large", "Unsupported Media Type", "Requested range not satisfiable", "Expectation Failed", "Internal Server Error", "Not Implemented", "Bad Gateway", "Service Unavailable", "Gateway Time-out", "HTTP Version not supported") ' Gennemløb Array med URL'er For intURL = 0 to Ubound(arrURLS) Set HttpObj = Server.CreateObject("AspHTTP.Conn") HTTPObj.Url = arrURLS(intURL) HTTPObj.GetURL
For intCode = 0 to Ubound(arrHTTPcode) If Instr(HttpObj.Response,arrHTTPcode(intCode)) Then strResponse = arrHTTPtext(intCode) Exit For End if Next If strResponse <> "OK" Then Response.Write "<p>" & arrIDS(intURL) & " - " & arrURLS(intURL) & " - " & strResponse & "</p>" End If strResponse = "" Next %>
Synes godt om
Slettet bruger
04. august 2002 - 20:11#6
takkker mange gange, jeg prøver det af i dag og i morgen og vender tilbage &:-)
hvis dine brugere alligevel surfer gennem dine links, kan du jo bare nøjes med at checke når de bliver besøgt, selvfølgelig vil det ikke være en optimal løsning, men et klart alternativ....
ala.:
****ASP-FIL****
<% checkurl(Request("url")) if side findes then 'hvis der ingen http-header fejl er response.redirect Request("url") 'vidrestil else 'hvis der var en fejl response.write "Oooouuuupppssszzzzzz......" 'giv en undskyldning 'evt. giv admin besked eller noter i fil/database end if
Du kan jo altid sætte script-timeout op til f.eks. 10 min og så se, hvor mange links der når at blive tjekket. Du kan jo også sætte den til at tjekke et helt tilfældigt link fra basen hver gang en bruger kommer ind på din forside. Hvis den fejler, kan du så, som sagt ovenfor, nortere det enten i basen eller få sendt dig en mail til dig selv. Det giver dig en lille idé om hvor mange links, der måtte være døde. Ulempen er så at brugeren skal vente på at et link bliver tjekket, når vedkommende besøger din side. Alternativt (hvis du har mulighed for at oprette opgaver på serveren), kan du automatisk lade den tjekke f.eks. et link hvert 5. minut. Det skulle ikke genere nogen.
Synes godt om
Slettet bruger
18. august 2002 - 11:20#15
Da jeg ikke har kunnet bruge denne metode, grundet en for stor link database, mener jeg ikke at mit mål er opfyldt, og af den grund vil jeg ikke udele point. hvis nogen på et tidspunkt skulle få enm ide til det, er jeg åben over for muligheder.
Du kunne jo også prøve at være lidt opfindsom sel ikke ? istedet for at løbe gennem det hele på en side kunne du jo have lavet det sådan at den stod og hoppede mellem 2 sider. Altså en side der hentede Urlerne og en der checkede dem så ville den jo ikke time ud ???
Synes godt om
Slettet bruger
18. august 2002 - 13:26#17
Det jeg har ste med den kode er at det tager uendelig med tid at tjekke disse links, lige nu pt. er der ca. 10000 links at tjekke i den. derfor mener jeg ikke det er en brugbar løsning. prøv at tænk på om et halvt år, at skulle sider og tjekke flere 100.000 links på denne måde, det går ikke &:-)
Synes godt om
Ny brugerNybegynder
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.