Autor Zpráva
Senky
Profil
Zdravím.
O regulárnych výrazoch skoro nič neviem a potreboval by som si overiť, či poslaná adresa bude mať tvar:
http://www.nieco.sk/?uc=sk1_12345
http://www.nieco musí byť vždy, sk môže byť aj iná koncovka, /?uc= bude vždy, za tým je to isté ako koncovka základnej adresy, číslo 1 môže byť iné a aj viac miestne, _ vždy a 12345 sú rôzne čísla s rôznym počtom číslic.
Dokázal by mi to niekto skonštruovať? Nemusí to byť dokonalé, napríklad .sk a sk1 sa nemusia zhodovať, ale základ aby ostal.
Bude mi jedno, či to bude cez preg_*, ereg_* alebo hocičo iné, proste aby som dostal nejakú inú hodnotu pri správnom výsledku ako pri nesprávnom.
Vopred veľmi ďakujem tomu, kto sa na to podujme...
Joker
Profil
Senky:
http://www.nieco musí byť vždy
Jedna konkrétní adresa, nebo jakákoliv?

Nástřel:
^http://www\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})/\?uc=\1[0-9]+_[0-9]+$
Poznámky:
- adresa tedy musí obsahovat www (jako to je v zadání)
- jinak to bere jakoukoliv adresu (kombinaci písmen, číslic a pomlčky)
- bere to nulu jako platné číslo, tj. například: http://www.example.com?uc=com0_0123 by mělo projít
- celý řetězec musí být tvořený jen tou adresou před ní ani za ní nesmí být nic dalšího.

edit: zrušil jsem značku pre kolem adresy, vypadalo to divně.
Senky
Profil
Bohužiaľ, nejde to. Najprv tam boli chyby, takto som to opravil:
http:\/\/www\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})\/\?uc=\1[0-9]+_[0-9]+
Avšak po zadaní takejto adresy:
http://www.nieco.sk/?uc=sk1_31409
Mi pri tejto funkcii:
function parse_url($url){
  if(preg_match("/http:\/\/www\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})\/\?uc=\1[0-9]+_[0-9]+/i", $url, $matches)){
    return true;
  }
  else{
    return false;
  }
}

Vrátilo false...
V čom teda môže byť chyba?
tiso
Profil
Senky: riadok 2:
if(preg_match("/http:\/\/www\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})\/\?uc=\\1[0-9]+_[0-9]+/i", $url, $matches)){

btw. nebude ti to fungovať na speed server, ten myslím končí na skx
a keď už píšeš /i tak je zbytočné tam dávať a-z spolu s A-Z, stačí jedno z nich
Senky
Profil
Heh, zjavne vieš o čom je reč, ale ďakujem, už to fachčí (a ten speed samozrejme fixnem, išlo mi hlavne o ten výraz. Veď pre skx to hádam už nejako upravím aj ja skúšaním...
Ďakujem fakt...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0