Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Możliwość użycia dużych i małych liter, spacji oraz cyfr + POLSKIE ZNAKI
Mody23
post
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


  1. preg_match( "/^[a-zA-Z0-9 ]+$/" , $title)


Wiadomo, rozwiązanie dobre, bo nie trzeba się głowić jakich znaków zakazać przy użyciu tylko działamy w drugą stronę - jakich znaków można używać. Jednak potrzebuję dorzucić tam polskie ogonki - ĄąĘęŻżŹźÓ󣳌śĆćŃń. Jak to zrobić?

Ten post edytował Mody23 11.02.2012, 12:36:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


  1. preg_match( "/^[a-zA-Z0-9 ĄąĘęŻżŹźÓ󣳌śĆćŃń]+$/" , $title)

wystarczy tak (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Evinek
post
Post #3





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


  1. preg_match( "/^[a-ząćęłńóśźżA-ZĄĆĘŁŃÓŚŹŻ0-9 ]+$/" , $title)

Powinno być okej.
Po prostu poszukałem w google... http://forum.php.pl/index.php?showtopic=178355

@UP:
Znów ktoś przede mną lekko. ;/

Ten post edytował Evinek 11.02.2012, 12:52:46
Go to the top of the page
+Quote Post
Mody23
post
Post #4





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


Problem w tym, że tak już próbowałem i to nie się nie spisuje...Próbowałem tak:
  1. preg_match( "/^[a-ząężźółśćń-ZĄĘŻŹÓŁŚĆŃ0-9 ]+$/" , $title)


Oraz tak:

  1. preg_match( "/^[a-z-Z0-9 ĄąĘęŻżŹźÓ󣳌śĆćŃń]+$/" , $title)


Ale to nic nie daje...
Go to the top of the page
+Quote Post
Daimos
post
Post #5





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


upewnij się, że plik php masz zapisany w tym samym kodowaniu, jakie otrzymujesz np. w formularzu. Sam sprawdź, że działa:
  1. <?php
  2.  
  3. $stringValid = 'ąś zxfe 4543';
  4. $stringInvalid = 'ąś zxfe # 4543';
  5.  
  6. preg_match( "/^[a-z-Z0-9 ĄąĘęŻżŹźÓ󣳌śĆćŃń]+$/" , $stringValid), // zwraca true
  7. preg_match( "/^[a-z-Z0-9 ĄąĘęŻżŹźÓ󣳌śĆćŃń]+$/" , $stringInvalid) // zwraca false
  8. );
Go to the top of the page
+Quote Post
Mody23
post
Post #6





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


Faktycznie, nie pomyślałem, bo mam problem z polskimi znakami ogólnie, są krzaki i to zapewne tego wina. A w nagłówku HTMLowym zdefiniowane mam iso-8859-2, to samo w notepad++ więc nie wiem dlaczego w efekcie dostaję krzaki ;/
Go to the top of the page
+Quote Post
Daimos
post
Post #7





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


korzystaj z UTF-8. Ustaw dokument na utf-8 i później w nagłówku html też wstaw UTF-8, a jeśli chcesz na siłę zostać przy iso, to upewnij się w przeglądarce, że faktycznie wyświetla treść w takim kodowaniu jak poprosiłeś, może jakaś literówka

Ten post edytował Daimos 11.02.2012, 13:17:28
Go to the top of the page
+Quote Post
Evinek
post
Post #8





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


UTF8 w meta.
W notepad++ plik na UTF8 - bez BOM.
Mi to zawsze działa. (IMG:style_emoticons/default/smile.gif)

@UP:
Trzeci raz ktoś napisał parę sekund szybciej niż ja! -.-

Ten post edytował Evinek 11.02.2012, 13:17:05
Go to the top of the page
+Quote Post
Mody23
post
Post #9





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


Dobra, poszło, dzięki (IMG:style_emoticons/default/wink.gif)
Ale pojawił się kolejny problem:

  1. $page = str_replace(array(" ", "Ą", "ą", "Ę", "ę", "Ł", "ł", "Ś", "ś", "Ć", "ć", "Ń", "ń", "/^[A-Z]+$/"), array("-", "A", "a", "E", "e", "L", "l", "S", "s", "C", "c", "N", "n", "/^[a-z]+$/"), $page);


Mimo tego, polskie ogonki nadal występują :/
Go to the top of the page
+Quote Post
Evinek
post
Post #10





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


Po 1. Mi to działa - prócz zmiany na małe litery.
Po 2. Brakuje Ci parę literek (Ż, Ź, Ó)

Do zmiany na małe literki daj:
strtolower($page);

Ten post edytował Evinek 11.02.2012, 13:43:58
Go to the top of the page
+Quote Post
Mody23
post
Post #11





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


hm...

Mam taką funkcje:

  1. function code_page_id($page)
  2. {
  3. $page = str_replace(array(" ", "Ą", "ą", "Ę", "ę", "Ł", "ł", "Ś", "ś", "Ć", "ć", "Ń", "ń", "/^[A-Z]+$/"), array("-", "A", "a", "E", "e", "L", "l", "S", "s", "C", "c", "N", "n", "/^[a-z]+$/"), $page);
  4. return strtolower($page);
  5. }


Robię var_dump'a:

  1. var_dump(code_page_id('ść'));


A zwraca mi length 2 'ść' ;/
Go to the top of the page
+Quote Post
Evinek
post
Post #12





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


  1. <?php
  2. function code_page_id($page)
  3. {
  4. $page = str_replace(array(" ", "Ą", "ą", "Ę", "ę", "Ł", "ł", "Ś", "ś", "Ć", "ć", "Ń", "ń", "/^[A-Z]+$/"), array("-", "A", "a", "E", "e", "L", "l", "S", "s", "C", "c", "N", "n", "/^[a-z]+$/"), $page);
  5. return strtolower($page);
  6. }
  7.  
  8. var_dump(code_page_id('ść'));
  9. ?>

Wynik:

string(2) "sc"

Coś musisz mieć pomieszane, wszystko działa.

PS. Dodaj jeszcze litery: Ó Ż Ź.
Go to the top of the page
+Quote Post
Daimos
post
Post #13





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


ponownie, sprawdź kodowanie w przeglądarce i w pliku
a tak na marginesie, do czego Ci w tamtej tablicy podawanej do str_replace wyrażenie regularne: "/^[A-Z]+$/" (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Mody23
post
Post #14





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

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


Coś musi być z kodowaniem...Jeśli zamieniam sobie a na b to bez problemu się zamienia...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 23:01