![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Szczebrzeszyn Ostrzeżenie: (10%) ![]() ![]() |
Czołem!
Znacie może adres, pod którym opisane jest wszystko KPK o wyrażeniach regularnych? Czytałem w manualu, ale to trochę mało... Pozdroofka. -------------------- while(!$wakacje){ czekaj();
} if($wakacje){ yuppie(); } exit; |
|
|
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 581 Pomógł: 0 Dołączył: 21.07.2003 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Chodzi ci o ereg, jak tak to mam taki art nie pamiętam skąd:
Kod Wyrażenia regularne jest to taka funkcja php (i właściwie wszystkich innych języków) która sprawdza czy dany ciąg znaków, wyraz, liczba lub coś mieszanego ma określoną formę. Oto przykład na chłopski rozum: wiemy chyba co to jest subskrypcja - odwiedzający mogą tam wpisać swój adres email aby otrzymywać informacje o nowościach. Adres email zbudowany jest w ten sposób: coś@cos - po lewej i prawej stronie małpy może wystąpić do 25 znaków czyli 25 po lewej, 25 po prawej + @ to razem 51 znaków. Ale przecież gdy ktoś wpisze w naszą subskrypcje np: "typedale"? Subskrypcje udostępniane przez duże serwisy np www.sub.4free.pl sprawdza poprawność adresu, ale gdy my np. mamy subskrypcje swojej produkcji? Trzeba jakoś sprawdzać czy adresik jest poprawny. I teraz pokaże jak to zrobić.
Zaczynamy pisząć ereg("warunki,$nazwa_sprawdzanego elementu,$tablica") - jeżeli wielkość liter ma być uwzględniana, lub eregi("") jeżeli nie. $tablica nas na razie nie interesuje (jest to opcjonalny argument). Oto jak to wykorzystać do emaila: eregi("^([a-z0-9_-.]{1,25})@([a-z0-9_-.]){1,25}$",$email) Teraz opis. Znak ^ oznacza, że pierwszy człon (wyraz) ma spełniać dane warunki a znak $ - że ostatni. Warunek to ([a-z0-9_-.]{1,25}) - onacza, że ciąg może się zkładać z liter od a do z (małe lub duże bo użyliśmy eregi - gdyby miały by być same duże to wtedy funkcja eregi A-Z) ,znaku podreślenia, myślnika i kropki, a liczby w nawiasach klamrowych oznaczają ilość znaków czyli od 1 do 25 znaków może tworzyć pierwszy człon. Potem ma być znak @ a następnie jest to samo wyrażenie. To jest poprawny adres e-mail. Teraz to trzeba jakoś sprawdzić a jest to bardzo łatwe. Wystarczy utworzy instrukcje if else i jako argument if wkleić ereg(i). Oto przykład: $adres=wpisz_email_a_potem_nie_email; if( eregi("^([a-z0-9\_-.]{1,25})@([a-z0-9\_-.]{1,25})$",$adres) ) { echo "To jest adres email"; } else { echo "To nie jest adres email"; } Jeżeli chcielibysmy sprawdzić odwrotnie czyli if(warunek nie prawdziwy) to wystarczy postawić przed ereg wykrzyknik !. Wyrażenia regularne posiadają mase możliwości,a tu przedstawiłem tylko ogólną koncepcję aby można było to zrozumieć. Poniżej wypisałem pare funkcji, które pomogą tworzyć wyrażenia regularne na wasze potrzeby: "^poczatek" - każdy ciąg znaków zaczynający się od frazy "poczatek" "koniec$" - każdy ciąg znaków kończący się frazą "koniec" "^tekst$" - ciąg rozpoczynający się i kończący frazą "tekst" "tekst" - kązdy ciąg, który zawier frazę "tekst" Symbole '*','+' i '?' oznaczają liczbę wystąpień określonego znaku lub frazy w ciągu. Oznaczają odpowiednio "zero, więcej" , "jeden lub więce" i "jeden lub zero" "ab*" - każdy ciąg zawierający znak a, po którym występuje zero lub więcej b (np:ab,abbb) "ab+" - każdy ciąg zawierający znak a, po którym występuje conajmniej jeden znak b "ab?" - każdy ciąg zawierający znak a, po którym może lecz nie musi być b "a?b+$" - ciąg, w którym może wystąpić a uzupełnione przez jedno lub więcej b kończących łąńcuch Możemy tez używać nawiasów klamrowych { i } aby określić liczbę powtórzeń (jak w przykładzie) "ab{2}" - każdy ciąg znaków zawierający a, po który występuje dokładnie dwa b "ab{2,)" - każdy ciąg znaków zawierający a, po który występuje co najmniej dwa b "ab{3,5}" - ciąg zawietający a i od trzech do pięciu b(np:abbb,abbbb) Znaki '(' i ')' służą do oznaczenia całej frazy "a(bc)*" - ciąg zawierający, a po którym występuje zero lub więcej fraz bc np.abcbcbcbcbc "a(bc){1,5}" - ciąg zawierający a, po którym występuje od jednej do pięcu fraz bc Symbol '|' spełnia zadanie operatora LUB "elo|siema" - ciąg, w którym występuje fraza elo lub siema "(a|bc)*c" - ciąg zawierający zero lub więcej znaków a|b poprzedzających znak c np:ac, bccc Kropka '.' oznacza dowolny znak "a.b" - ciąg, w którym pomiędzy a i b wystepuje dowolny znak np: a1b albo arbuz "^.{5}$" - ciąg zawierający dokładnie pięć dowolnych znaków np: 12345 albo qwert Symbol ^ wystepujący jako pierwszy w nawiasie kwadratowym oznacza odwrotność zapisu zamkniętego w tym nawiasie "^[^a-zA-Z]+$" - ciąg niezawierający żadnej litery od a doz np:1000 -------------------- „Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.” Jan Paweł II |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
W manualu Ci malo? A umiesz juz wszystko co tam jest napisane?
-------------------- Brak czasu :/
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Manual nie jest napisany prostym językiem dla początkujących... można z niego skorzystać gdy wie się czego szuka, a nie do nauki od podstaw jakiegoś zagadnienia..
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 581 Pomógł: 0 Dołączył: 21.07.2003 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Riklaunim @ 2004-06-21 13:49:05) Manual nie jest napisany prostym językiem dla początkujących... można z niego skorzystać gdy wie się czego szuka, a nie do nauki od podstaw jakiegoś zagadnienia.. Oj młody człowieku mylisz się, manual to skarbnica wiedzy z której nawet poczatkujący może się nauczyć php i różnych zagadnien. -------------------- „Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.” Jan Paweł II |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat(kubatron @ 2004-06-21 13:55:51) Oj młody człowieku mylisz się, manual to skarbnica wiedzy z której nawet poczatkujący może się nauczyć php i różnych zagadnien. Kubatron wie o tym najlepiej, nieprawdaż? Wiem, wiem.. ![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
@scanner: też bym się nie mógł powstrzymać...
I nie mogę... A co mają google na ten temat do powiedzenia? http://www.google.com/search?q=%22wyra%C5%...=utf-8&oe=utf-8 (cytat: Wyniki 1 - 10 spośród około 12,400 dla zapytania "wyrażenia regularne" - sporo... jest w czym wybierać...) ![]() -------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Szczebrzeszyn Ostrzeżenie: (10%) ![]() ![]() |
Mamusia już mnie nauczyła, że korzysta się zawsze z podręczników. Mam ściągnięty manual, ale tego czego Dzięki WAM właściwie znalazłem to tam za bardzo nie ma.
A tak poza tym: to ja w domu mam modem ![]() Tak właściwie: to manuala rozumiem w 90%, tyle razy mi podpowiadał jak stosować poszczególne funkcje, ale wyrażenia regularne... Ten post edytował rze-X-nik 23.06.2004, 08:50:21 -------------------- while(!$wakacje){ czekaj();
} if($wakacje){ yuppie(); } exit; |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Jakbym mial sie uczyc programowania w c np. z takiego MAN to bym poprostu chyba zwariowal. Manuale zawieraja wiedze, ale brak w nich przykladow, filozofi programowania i do tego lepsze sa kursy, ksiazki, artykuly gdzie jest wytlumaczone dokladnie o co chodzi i wskazowki jak to ugryzc.
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:45 |