Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ereg i pattern

[es] :: PHP :: ereg i pattern

[ Pregleda: 3533 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

e7num
negde u mrezi...

Član broj: 9809
Poruke: 23
*.ipt.aol.com



Profil

icon ereg i pattern10.05.2003. u 19:41 - pre 254 meseci
Pozdrav:
Interesuje me kako da koristim patterns za stringove koje zelim da pronadem i zamenim. Nasao sam funckiju ereg i slicne varijante toga eregi_replace itd. Trazio sam na netu gde objasnjava lepo kako da se koriste ali svi samo napisu jedan primer kao ovaj
Code:
eregi("^[a-z0-9_]+@[a-z0-9-]+.[a-z0-9-.]+$", $Email)
koji kao sto se vidi proverava da li je string u email formatu. Ali sta je tacno ^ i [a-z0-9_] i tako dalje.
Ovo mi treba da napravim funckiju koja ce body emaila pretraziti i pronaci URL i zameniti sa URL-om koji se otvara u novi prozor koristeci target="_blank". Kako je ovo najbolje i najpametnije uraditi.Ako koristim eregi_replace() kako da to uradim da doda <a href=" taj link koji je pronasao">taj link koji je pronasao</a>.Primetio sam da i ovaj forum to ima.
Hvala...
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: ereg i pattern10.05.2003. u 19:58 - pre 254 meseci
evo ovo odavno što sam napisao
Code:

 $str = eregi_replace("(^|[[:space:]])(http://[^[:space:]]{1,})([[:space:]]|$)","\\1<a href=\"\\2\"  target=\"_blank\">\\2</a>\\3",$str); 
 $str = eregi_replace("(^|[[:space:]])(ftp://[^[:space:]]{1,})([[:space:]]|$)","\\1<a href=\"\\2\" target=\"_blank\">\\2</a>\\3",$str); 
 $str = eregi_replace("(^|[[:space:]])(www.[^[:space:]]{1,})([[:space:]]|$)","\\1<a href=\" http://\\2\" target=\"_blank\">\\2</a>\\3",$str); 
 
Odgovor na temu

e7num
negde u mrezi...

Član broj: 9809
Poruke: 23
*.ipt.aol.com



Profil

icon Re: ereg i pattern10.05.2003. u 20:42 - pre 254 meseci
e,hvala ti na speed odgovoru,ali ajd mi molim te reci cemu sluzi \\2 i \\3 posto vidim da nisu escape chars. I sta sad tacno to daje i sta je [:space:]. Nekontam na koji fazon pises taj patern.Probao sam kod i radi sve ok ali ne znam kako radi.

hvala covo!
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: ereg i pattern10.05.2003. u 21:36 - pre 254 meseci
evo ti par primera sa php.net/ereg-replace

1) Example 1. ereg_replace() Example
Citat:
$string = "This is a test";
echo ereg_replace (" is", " was", $string);
echo ereg_replace ("( )is", "\\1was", $string);
echo ereg_replace ("(( )is)", "\\2was", $string);


Odnosno ako imaš
ereg_replace ("(jedan)(dva)(tri)", "\\1\\2\\3", $string);
\\1 = jedan
\\2 = dva
\\3 = tri

2) Example 3. Replace URLs with links
Citat:
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);


što se tiče space-a :alpha: i :alnum: ne mogu trenutno da nađem na php.netu i ako sam siguran da je tamo negde...
nažalost moram ODMAH da krenem pa potraži na google tipa site:php.net alpha alnum space
 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: ereg i pattern09.10.2008. u 10:11 - pre 189 meseci
Jel može meni neko da pomogne sa ereg() :(

Hoću da proverim da string sadrži samo a-z, A-Z, 0-9 i _.

pokušao sam ovo:
Code:
(!ereg('[a-z0-9]',$_POST['url']))

ali mi dozvoljava uzvičnike, @ i još neke karaktere ...
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: ereg i pattern09.10.2008. u 18:51 - pre 189 meseci
Sto ne radis sa preg_replace, cini mi se da je eregi izasao iz upotrebe.

Code:


if (preg_match_all("/[A-Za-z0-9_]+/", $neki-string, $match))
{
  // String je ok
}

 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: ereg i pattern09.10.2008. u 21:45 - pre 189 meseci
pa isto mi se hvata...


opet, ako je $nekistring = "!adasd" - sve je ok!
opet, ako je $nekistring = "!#$%&adasd" - sve je ok!
opet, ako je $nekistring = "afsdfsf" - sve je ok!
a ako je $nekistring = "!#$%/(&" - nije ok!


nije mi jasno ...
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: ereg i pattern10.10.2008. u 04:36 - pre 189 meseci
Citat:
5h0ck: pa isto mi se hvata...


opet, ako je $nekistring = "!adasd" - sve je ok!
opet, ako je $nekistring = "!#$%&adasd" - sve je ok!
opet, ako je $nekistring = "afsdfsf" - sve je ok!
a ako je $nekistring = "!#$%/(&" - nije ok!


nije mi jasno ...


Deo koda koji ti je Man-Wolf predlozio radi kako treba ...

U prvom primeru u $match ce biti "adasd", sto ti je valjda i cilj.
U drugom "adasd", u trecem "afsdfsf", a u cetvrtom nece biti rezultata, sto je totalno ispravno s' obzirom na dati kod ...

E sad je pitanje sta ti zelish da dobijes kao rezultat u cetvrtom primeru ?

Inache ako ti smetaju karakteri tipa !#%, mozes da ih sve zamenis sa "" pomocu preg_replace.

Pogledaj ovo : http://en.wikipedia.org/wiki/Regular_expression

pozZz
 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: ereg i pattern10.10.2008. u 08:22 - pre 189 meseci
E pa u tome i jeste problem, što meni smetaju "!#$%&". :)

Sada sam skapairao da funkcija traži da u stringu te karaktere. Ako su tu - onda je ok. Ako ih nema, onda nije ok.

A meni treba, ako su samo ti karakteri u stringu - onda ok.

Mogu ja to da uradim sa preg_replace, ali se bojim da postoji previše karaktera za koje bi morao da radim replace...
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.yunix.co.yu.



+257 Profil

icon Re: ereg i pattern10.10.2008. u 12:53 - pre 188 meseci
Znaci tebi treba ako sadrzi bilo koji osim navedenih, da to ne valja... Treba ti znaci da ispitujes da li string sadrzi negaciju od a-z itd. sto se postize u regexp-u sa:
Code:

[^a-z]

Direktan primer sa rezultatima:

echo eregi("[^a-z][^A-Z][^0-9]","234");
echo eregi("[^a-z][^A-Z][^0-9]","eee");
echo eregi("[^a-z][^A-Z][^0-9]","#$%");
1
echo eregi("[^a-z][^A-Z][^0-9]","a#$%$");
1
echo eregi("[^a-z][^A-Z][^0-9]","^&^*7%*");
1
echo eregi("[^a-z][^A-Z][^0-9]","AUIYIU");
echo eregi("[^a-z][^A-Z][^0-9]","AUI&*&");
1


Kao sto vidis u gornjem primeru, gde ima nestandardnih karaktera (koji nisu a-z,A-Z i 0-9)- to bude nadjeno - a to je slucaj koji ti zelis da izbacis, tj da nekome kazes da SADRZI karaktere koji tebi ne trebaju ili nisu dozvoljeni.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
89.110.202.*



+257 Profil

icon Re: ereg i pattern10.10.2008. u 13:25 - pre 188 meseci
Evo samom sebi samo jos da kazem :) da postoji mnoooooooogoo brzi nacin za replace tih karaktera. U pcre postoji \W koji nalazi karakter koji nije a-zA-Z0-9_. Znaci prosta zamena sa preg_replace ce ti dati string kakav zelis.

Primer:

echo preg_replace("/\W/","","te^%%^%$^%st^%$%");
test


Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

[es] :: PHP :: ereg i pattern

[ Pregleda: 3533 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.