Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_match zwracajacy znak ktory wystapil a nie powinien
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


Czesc, mam prosta funkcje do walidacji:

  1. public function checkSimpleField($value) {
  2.  
  3. $safeChars = false;
  4. $pattern = "/^[a-zA-Z0-9-,_ ()]+$/";
  5.  
  6. if (preg_match($pattern, $value) == 1) {
  7. $safeChars = true;
  8. }
  9. return $safeChars;
  10. }


Dziala ok, ale ja bym chciala dostac jeszcze jakos nielegalne znaki (czyli te spoza $pattern) ktory wystapily. Czy jesli $value bedzie mialo wartosc: ";";; no to jak wykryc ze to wlasnie ";";; sa tymi niedozwolonymi znakami? Mam nadzieje ze rozumiecie o co mi chodzi.

pzdr,
misty
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misty
post
Post #2





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


czesc, pomysly sa spoko-ale sprowadza sie to do mojego poczatkowego pytania - jak wykryc znaki? zeby zrobic str_replace - to przeciez musze wiedziec czego str_replace - awiec musze mu podac poprawne/niepoprawne znaki jako argument. Majac String:

124iyjhgfyhr;0989ug

jak ja moge wykryc ze poprawne to sa 124iyjhgfyhr0989ug ?

rozumiesz o co mi chodzi?

Przyrzalam sie blizej temu preg_replace i majac taki kod:

  1. $pattern = "/^[a-zA-Z0-9-,_ ()]+$/";
  2. $replace = "";
  3. $subject = "this is only a test ?";
  4.  
  5. print_r(preg_replace($pattern, $replace, $subject));


to mi nie zadziala jak powinno. zwroci mi "this is only a test ?". A wg tego powinien chyba zwrocic sam '?'

W dokumentacji pisza:
If matches are found, the new subject will be returned, otherwise subject will be returned unchanged or NULL if an error occurred.

czyli on nie znajduje matches? czy on traktuje $subject jako calosc, tzn szuka matches dla calego $subject? No bo ja potrzebuje czegos co by sprawdzalo znak po znaku..
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 15:07