![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Próbowałem już różnych sposobów, również zaczerpniętych z manual'a, szukałem na forum i o dziwo nic nie znalazłem takiego, co wreszcie by mi pomogło. Próbowałem m.in.
Żadne z powyższych rozwiązań mi nie pomogło i wyrażenie nadal nie przepuszcza polskich liter. Proszę o pomoc. Pozdrawiam, Najki. Czy ten problem jest tak trudny, że nikt nie odpowiada? Może ten problem jest tak banalny, że nikt nie odpowiada? A może ten problem jest niemożliwy i coś jest skopane z moim wampserver'em na localhost'cie ? Powiedzcie cokolwiek co może mi pomóc, mam krótki deadline z projektem. Ten post edytował Najki 25.10.2006, 12:57:36 -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, że te wyrażenie ma sprawdzać czy podany ciąg zawiera polskie znaki diakrytyczne?
Wynik u mnie: Kod Tak, są polskie znaki Myślę, że problem może być w różnicy kodowania pliku i danych wejściowych. U mnie kodowanie pliku jest UTF-8 ale dane są wpisany w pliku, więc wszystko się zgadza. Jeżeli dane pobierasz z zewnątrz (DB, GET, POST itd.) proponuję przekonwertować najpierw string do odpowiedniego kodowania, używając np. iconv" title="Zobacz w manualu php" target="_manualJeżeli masz natomiast dostęp do biblioteki mbstring" title="Zobacz w manualu php" target="_manual, to jej funkcje powinny pomóc. pozdr. Ten post edytował siemakuba 26.10.2006, 08:59:01 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Teraz przepuszcza tekst, jeśli w środku znajdzie jakiś polski znak, bo brakuje ograniczników początku i końca stringa (^ i $). Z tego co dalej badam sprawę od wczoraj, to chyba właśnie te ograniczniki są powodem moich problemów. Dlaczego ? Ostatnia wersja wyrażenia, z jakiej korzystam?
To jest po prostu filtr sprawdzający poprawność wprowadzonych znaków przez użytkownika. Powinien przepuścić:
![]() A co do kodowania to nie powinno być problemu - są to dane pobierane $_POST'em, ale kodowanie zarówno pliku, jak i strony to ISO-8859-2, więc powinno być OK. Ten post edytował Najki 26.10.2006, 09:12:00 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ano widzisz, wszystko jasne :)
Po pierwsze, to co podajesz w swoim wyrażeniu to zakres znaków jaki ma znaleźć się w badanym stringu, a zakres należy podać w nawiasie kwadratowym. Stąd, pierwsza zmiana:
Dalej, nie użyłeś żadnego operatora powtórzenia, więc wyrażenie w takiej formie zadziała tylko dla jednego znaku. Stąd zmiana:
No i raczej nie potrzebujesz wszystkich modyfikatorów, zakładam, że wtsarczy s i i (ewentualnie jeszcze m). Ostateczna wersja:
edit: i musisz jeszcze zastąpić znak - na \- -- jest on znakiem specjalnym wewnątrz nawiasów kwadratowych. pozdr. Ten post edytował siemakuba 26.10.2006, 09:23:11 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Przykro mi, ale ciąg "Czarna Owca ąćęłńóśźż" nie przechodzi
![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
:) Masz rację, zapomniało nam się o jeszcze jednym dozwolonym znaku - spacji :)
pozdr. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 12.02.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No faktycznie
![]() ![]() Dziękuję Ci bardzo za pomoc ![]() -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Sory, że rozwiązanego kotleta biorę, ale
Jeżeli robimy stronę w unicode, to \p{L} oznacza wszystkie znaki literowe. I po problemie ;-) Pozdrawiam, Kamil. Ten post edytował Kamil J. 30.10.2006, 20:02:20 -------------------- Workspace: Ubuntu 8.04, PDT.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.06.2003 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Mogę odgrzebać temat?
![]()
Zawsze zwraca mi nie :/ Chcę, aby wyrażenie sprawdzało mi wpisanie liter z dowolnego języka, cyfr oraz znaków .-_ Ciąg znaków będzie o minimalnej długości 1. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 4 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
$wyr = '#[\p{L}0-9.-_]+#u';
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 05:21 |