Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Weryfikacja ciągu znaków
mariuszg
post
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 22.06.2006

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


Witam,

Jak zrobić aby sprawdzać ciąg znaków. Jeśli w ciągu znaków wystąpią znaki # lub\i * to zwraca false.

Próbuję z preg_match ale nic mi nie wychodzi.

Proszę o pomoc
Pozdrawiam
Go to the top of the page
+Quote Post
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


strpos


--------------------
Go to the top of the page
+Quote Post
mariuszg
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 22.06.2006

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


Działa:

  1. <?php
  2. $mystring = 'azncjdcds*regkwjg';
  3. $findme = '*';
  4. $pos = strpos($mystring, $findme);
  5.  
  6. if ($pos === false) {
  7. echo "brak";
  8. } else {
  9. echo "jest";
  10. }
  11. ?>


Działa dla pojedynczego znaku . Czy dla sprawdzenia kilku znaków muszę robić pętlę czy jest inny sposób ?
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Zwraca false jeżeli pojawi się chociaż jeden ze znaków * lub #
  1. funkcjon czy_tekst_ok($tekst)
  2. { if(preg_match('/[\*#]+/',$tekst))
  3. return false;
  4. return true;
  5. }
  6. czy_tekst_ok($twoj_tekst);


Ten post edytował bastard13 20.06.2010, 11:31:17


--------------------
Go to the top of the page
+Quote Post
mariuszg
post
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 22.06.2006

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


Działa pięknie. Wielkie dzięki.

Ale jestem niemowlaczek jeśli chodzi o wyrażenia regularne.
Jeśli macie jakieś linki gdzie jest to opisane jak dla niemowlaka to będę wdzięczny.

Dziękuję i pozdrawiam
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


poprzedni sposób był lepszy i wydajniejszy wyrażenie regularne są wolne i nie służą do szukania pojedynczego znaku w tekście, żeby sprawdzić więcej niż jeden znak możesz użyć zwykłej alternatywy:
  1. if(strpos($text, '#') || strpos($text, '*'))
  2. {
  3. echo "nie dozwolony znak";
  4. }


co do wyrażeń regularnych tu masz dobry tutorial http://www.tipsntutorials.com/tutorials/PHP/50, ale pamiętaj, że wyrażenia są wolne i używaj ich tylko wtedy jeżeli danej funkcjonalności nie możesz osiągnąć prostszymi funkcjami
Go to the top of the page
+Quote Post
bastard13
post
Post #7





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


http://www.php.net/manual/en/book.pcre.php
Tam masz naprawdę wszystko, od budowy wyrażeń po funkcje php'a, z przykładami. Jedyne wymagania to znajomość angielskiego:)


--------------------
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 Aktualny czas: 22.08.2025 - 01:50