Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Modyfikacja funkcji z użyciem EREG
ewaslawek5
post 20.07.2011, 08:10:53
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 2
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Witam,

posiadam funkcję do sprawdzania poprawnego adresu strony WWW, funkcja działa, problem pojawia się gdy sprawdzany adres zawiera 'myślnik' np.:

adres-strony.pl

Przyznam że wyrażenia w PHP są dla mnie niezrozumiałe.

  1. function prawidlowy_adres($adres)
  2. {
  3. global $status;
  4. if (ereg("^(http://)[a-zA-Z0-9\-\.]+\.(eu|pl|info|com|co|org|net|mil|edu)$",$adres)) {
  5. $status = 'prawidlowy';
  6. }else{
  7. $status = 'nieprawidlowy';
  8. }
  9. }


Proszę o pomoc.


--------------------
Dobro popłaca - zawsze !
Go to the top of the page
+Quote Post
emajl22
post 20.07.2011, 08:13:04
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


zamiast ereg daj preg_replace
http://blog.zeromski.com.pl/2008/05/wyraze...p-preg_replace/


--------------------
Go to the top of the page
+Quote Post
ewaslawek5
post 20.07.2011, 08:16:34
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 2
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


A gdybym chciał pozostać przy EREG, co by trzeba dopisać do tego wyrażenia żeby myślniki również mogły być... ?



--------------------
Dobro popłaca - zawsze !
Go to the top of the page
+Quote Post
thek
post 20.07.2011, 08:25:08
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Jeśli posiadasz php w wersji conajmniej 5.2 to po kiego grzyba wymyslasz koło na nowo? Filter_var i FILTER_VALIDATE_URL a świat staje się prostszy...


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
ewaslawek5
post 20.07.2011, 08:56:07
Post #5





Grupa: Zarejestrowani
Postów: 89
Pomógł: 2
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


Podaje rozwiązanie, bo ciężko widzę z pomocą.
Pisałem i prosiłem że chciałem zostać przy EREG - pomocy się nie doczekałem.

Oto rozwiązanie:
  1. function prawidlowy_adres($adres)
  2. {
  3. global $status;
  4. if (ereg("^(http://)[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$adres)) {
  5. $status = 'prawidlowy';
  6. }else{
  7. $status = 'nieprawidlowy';
  8. }
  9. }


Dziękuje za szczerą pomoc Panie Thek

PS.
Pewnie będę zbanowany za oczernianie.


--------------------
Dobro popłaca - zawsze !
Go to the top of the page
+Quote Post
thek
post 20.07.2011, 09:08:00
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Jeśli już chcesz wyrażenie regularne, to tutaj masz te użyte w Konanie 3.1... Co prawda preg_replace, ale chyba to nie problem?
http://kohanaframework.org/3.1/guide/api/Valid#email

PS: Nie widze o czerniania. A co do ereg to była z Twojej strony jedynie sugestia, a nie "to musi być ereg i koniec", tak więc nie zabroniłes podawać innych rozwiązań, a to akurat wydaje się być prostsze i na dodatek prawidłowe. Czemu? Bo adres url może zawierać znaków więcej niż tylko te wymienione przez Ciebie. Tak więc to co jest prawidłowym adresem, Twoja funkcja obecna uzna za nieprawidłowe. Przykład? katalog użytkownika w linuksie zaczyta się od tyldy ~ co jest jak najbardziej poprawnym adresem, tylko że nie dla Twojej funkcji.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
ewaslawek5
post 20.07.2011, 09:13:26
Post #7





Grupa: Zarejestrowani
Postów: 89
Pomógł: 2
Dołączył: 5.11.2007

Ostrzeżenie: (0%)
-----


SUPER,

Masz racje, i sory za moje znerwowanie smile.gif.
Przytoczoną przez Ciebie funkcje już łykłem.

Jeszcze raz dzięki.


--------------------
Dobro popłaca - zawsze !
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 04:35