Autor | Zpráva | ||
---|---|---|---|
Herm Profil |
#1 · Zasláno: 1. 5. 2010, 11:21:39 · Upravil/a: Herm
Ahoj, mám menčí problém s regulérním výrazem
preg_match("/((http:\/\/)|(www\.)).+(\.[a-z]{1,6})/", $lastsit, $match); funguje dobře, ikdyž asi nebude fungovat vše, ale potřebuji udělat aby počítal s tuto adresou http://www.google.cz/url?sa=t&source=web&ct=res&cd=3&ved=0CAsQFjAC&url=http%3A%2F%2Fwww.seznam.cz tady je problém že je to vícekrát .cz a ja to potřebuji předělal na http://www.google.cz v podstatě potřebuji vždycky jen kořen adresy. Děkuji za pomoc, regulérni výrazy mi nějak moc nejdou |
||
AM_ Profil |
#2 · Zasláno: 1. 5. 2010, 11:25:56
v jakém tvaru dostáváš regulár na vstupu? je před ním vždycky protokol (http:// nebo jiný)?
pak: preg_match('~://([a-z\.-]+)~i', $str, $matches) ti vyhodí v $matches[1] jméno domény. |
||
Herm Profil |
#3 · Zasláno: 1. 5. 2010, 11:35:27
AM:
jj diky to je ono, mno bylo to http://www.google.cz/url?sa=t&source=web&ct=res&cd=3&ved=0CA4QFjAC&url=http%3A%2F%2Fwww.seznam.cz%2F&rct=j&q=seznam&ei=7vTbS4mQGJOgONGP1IgH&usg=AFQjCNE5h8uq8J8vh6UE0X_yrA3U_vmzJA a vystup pak http://www.google.cz/url?sa=t&source=web&ct=res&cd=3&ved=0CAsQFjAC&url=http%3A%2F%2Fwww.seznam.cz jo http tam bylo vždycky, ale ten tvuj funguje dobře.. diky:) |
||
Herm Profil |
#4 · Zasláno: 1. 5. 2010, 11:38:08 · Upravil/a: Herm
Herm:
ikdyž ješte neni tak dobrý, vystup je toto s tím tvým regulérním výrazem //www.google.cz nedá tam http: a ale jen ty lomítka ale funguje to takto ~http://([a-z\.-]+)~i |
||
AM_ Profil |
#5 · Zasláno: 1. 5. 2010, 11:57:57
výstup by měl být jen www.google.cz, a je v $matches[1] a ne $matches[0]. Co když někdo zadá https adresu? pokud chceš matchovat i protokol, udělej to takhle:
preg_match('~[a-z0-9]+://[a-z0-9\.-]+~i', $str, $matches) ještě tam každopádně musí být 0-9, na to jsem pozapomněl. takhle to bude v $matches[0] i s protokolem |
||
Časová prodleva: 14 let
|
0