Entwickler-Ecke
Internet / Netzwerk - Url testen
G-man - Di 03.06.03 11:58
Titel: Url testen
Hallo,
wie kann ich herausfinden ob die URL (aus einem Editfeld) korrekt ist
und falls nicht nach ähnlichen suchen?
G-man
maxk - Di 03.06.03 20:23
1. Nach nicht zulässigen Zeichen suchen und durch %ASCII% ersetzen
2. auf HTTP://, FTP://, GOTHER://, etc. prüfen
3. URL aufrufen und auf Serverantwort 200 warten
tommie-lie - Di 03.06.03 20:29
Das Protokoll heißt Gopher und nicht Gother.
Aber ich wüsste nicht, wo dsa heute noch eingesetzt wird, bzw heute noch ein Gopher-Server Anfragen beantwortet. Viel wichtiger wäre HTTPS und FTPS.
Tweafis - Di 03.06.03 22:24
Err, der Code geht doch nicht...
Fis
G-man - Mi 04.06.03 11:58
Jo,
Gibt`s da irgendwo ein Codebeispiel?
Wenn ja, wo?
G-man
MaxiTB - Mi 04.06.03 12:23
Titel: Moment mal ...
Das sind alles nur Alibi-Tests - am besten ists, wenn man auf die Files zugreift und einen Fehler abfängt.
Auf diese weise weiß man 100%ig, ob a) die URL gültig ist und b) die URL wirklich gültig ist (und kein broken link).
G-man - Fr 06.06.03 12:03
Irgendwie so hab ich mir das ja schon gedacht,
aber ich weiß halt nicht, wie ich das in Object Pascal ausdrücken soll...
Wenn`s jemand weiß, bitte posten...
focus - Fr 06.06.03 13:05
ohne dir zu nahe treten zu wollen willst du von uns hilfestellung oder lösungen?
gruss
michael
focus - Fr 06.06.03 13:17
habe noch was gefunden was dir mit sicherheit weiterhilft auch wenn ich es nicht gut heisse einfach lösungen zu posten...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| function GetURLs(line: string): TStringList; var i : integer; posURL, s : string; begin Result := TStringList.Create; s := line; i := 0; if Length(s) < 5 then exit; repeat i := Pos(' ', s); if i > 0 then begin posURL := Copy(s, 1, i-1); s := Copy(s, i+1, Length(s)-i); if isURL(posURL) then Result.Add(posURL); end else begin PosURL := s; if isURL(posURL) then Result.Add(posURL); Break; end; until Length(s) = 0; if Result.Count = 0 then begin Result.Free; Result := nil; end; end;
function IsURL(s: string): Boolean; var i: integer; begin Result := False; if Length(s) < 5 then exit; if (s[Length(s)] = '.') or (Pos('..', s) > 0) then exit; for i := 1 to Length(s) do if (Ord(s[i]) < 33) or (Ord(s[i]) > 126) then exit; if (Pos('www.',LowerCase(s)) = 1) or (Pos('news:', LowerCase(s)) = 1) and (Length(s) > 6) then begin Result := True; Exit; end; if (Length(s) > 12) or (Pos('mailto:', LowerCase(s)) = 1) and (Pos('@', s) > 1) and (Pos('.', s) > 4) and (Pos('.', s) > (Pos('@', s) +1)) then begin Result := True; Exit; end; if (Pos('http:://', LowerCase(s)) > 0) or (Pos('ftp://', LowerCase(s)) > 0) and (Length(s) > 10) and (Pos('.', s) > 7) then begin Result := True; Exit; end; end; |
gruss
michael
G-man - Di 10.06.03 15:54
Vielen Dank,
das könnte das sein, was ich gesucht habe...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!