Jakie znaki mogą występować w URL?

Odpowiedz Nowy wątek
2013-01-15 14:14
0

W tej chwili piszę program, którego jedną z funkcjonalności jest wykrywanie URL w tekście. Powinno wykrywać takie linki jak
http://google.com/?q=wyraz
https://google.com/?q=wyraz
google.com/
google.com

i tak dalej.

Wszystko jest oprogramowane z tym że, została mi jeszcze kwestia jakie znaki mogą być w części http://google oraz /?q=wyraz. Czyli przed i po .com.

Czytałem trochę o tym i dowiedziałem się że w tej pierwszej części mogą być znaki a..z, 0..9, . oraz - w środku. Nie znalazłem wzmianki o _ (też może być czy nie? :( ). Jak jest z dużymi literami?

Na logikę nie można mieć domen z polskimi znakami, jednakże kiedyś widziałem adres "gimnazjum.zdjęcia.com''. nie wiem czy to był jakiś trik z przekierowaniami i mod_rewrite(?) ale czy program powinien "akceptować" takie linki?


edytowany 2x, ostatnio: TomRiddle, 2013-01-15 14:15

Pozostało 580 znaków

2013-01-15 14:16
Rev

http://www.ietf.org/rfc/rfc1738.txt
http://www.ietf.org/rfc/rfc2396.txt
http://www.ietf.org/rfc/rfc2732.txt


edytowany 1x, ostatnio: Rev, 2013-01-15 14:17
Pokaż pozostałe 6 komentarzy
No co Ty: http://localhost/ . Jest jeszcze jeden trik: ustaw prefiks DNS na "4programista.net", wpisz "ping ludzie" i obserwuj magię. - Demonical Monk 2013-01-22 05:18
Ale localhost nie przechodzi przez DNS - hauleth 2013-01-22 08:20
Eh... Czytaj uważniej. - Demonical Monk 2013-01-22 08:33
Sufiksy DNS i nawet "http://dupa/" idzie zrobić. - Demonical Monk 2013-01-22 09:10
PS. localhost też jest sufiksem DNS wklepanym standardowo. - Demonical Monk 2013-01-22 09:10

Pozostało 580 znaków

2013-01-21 19:39
0

Jak to nie można mieć domeny z polskimi znakami? Oczywiście, że można.
http://pl.wikipedia.org/wiki/Internationalized_Domain_Name

IDN to taka sztuczka z kodowaniem. Przeglądarka zamienia automatycznie żółć.pl na jakieś YD7ygudYgd.pl i dalej adres idzie już bez polskich liter. - Azarien 2013-01-22 17:55

Pozostało 580 znaków

2013-01-22 06:40
Rev
0

niby w jaki sposób miałbym sprawdzić czy "google" to link czy po prostu wyraz "google"? (mój program pozawala nie wpisywać użytkownikowi http:// żeby było bardziej fajne :)

RFC 1738
3.1. Common Internet Scheme Syntax
//<user>:<password>@<host>:<port>/<url-path>
Some or all of the parts "<user>:<password>@", ":<password>", ":<port>", and "/<url-path>" may be excluded. The scheme specific data start with a double slash "//" to indicate that it complies with the common Internet scheme syntax.

Prawidłowy link właśnie jest określony poprzez scheme, czyli coś, czego nie pozwalasz wprowadzać.

host
The fully qualified domain name of a network host, or its IP address as a set of four decimal digit groups separated by ".". Fully qualified domain names take the form as described in Section 3.5 of RFC 1034 and Section 2.1 of RFC 1123

RFC 1034
3.5. Preferred name syntax

<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through


edytowany 1x, ostatnio: Rev, 2013-01-22 06:41

Pozostało 580 znaków

2013-01-22 10:22
0

@topic: do takiego czegoś są wyrażenia regularne. W internecie można znaleźć gotowe wyrażenie o różnej jakości i dokładności.
Np tu jest lista radosnej twórczości ludzi: http://regexlib.com/Search.as[...]AspxAutoDetectCookieSupport=1 nic tylko sobie wybrać coś co ci najbardziej pasuje.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0