Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [php] minimalna długość wyrażenia
-archie-
post
Post #1





Goście







chodzi o to żeby tekst wpisany do okienka formularza był dłuższy niż (np.) 4 znaki.
Go to the top of the page
+Quote Post
-archie-
post
Post #2





Goście







zapomnialem dopisac (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) , że chodzi oczywiscie o php
Go to the top of the page
+Quote Post
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?php
  2.  
  3. if(strlen($wyrazenie)<4)
  4. {
  5. die("twoje wyrazenie jest za krotkie");
  6. }
  7.  
  8. ?>

strlen" title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
-archie-
post
Post #4





Goście







dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Można też inaczej.
  1. <?php
  2.  
  3. $strString = 'test';
  4.  
  5. if( ! isset( $strString{4} ) )
  6. {
  7. echo 'Ciąg za krótki. Powinien byc dłuższy niż 4 znaki';
  8. }
  9.  
  10. ?>


Przeczytalem ostatnio w książce "Guide to php Security" autorstwa Ilii Alshanetsky, że srelen() to jedna z wolniejszych funkcji i dużo lepiej zastosować podany wyżej kod.
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


OT: ciekawi mnie czemu miala by byc wolniejsza skoro, jak pamietam z c++, to zwykla petla szukajaca chyba $ na koncu? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
UDAT
post
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Cytat(em1X @ 2006-05-16 05:36:47)
OT: ciekawi mnie czemu miala by byc wolniejsza skoro, jak pamietam z c++, to zwykla petla szukajaca chyba $ na koncu? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Teoretycznie taka pętla ma złożność O(n), a sprawdzenie O(1), jednakże chyba przy 4 znakach nie powinno być z tym problemu.
Go to the top of the page
+Quote Post
-Guest-
post
Post #8





Goście







OT: A fakt $zmienna{X} bedzie jednak szybsza od strlen() - logiczne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) zwracam honor
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Tu jest jeszcze jedna kwestia, poza sprawdzaniem zamiast szukania.
isset() jest konstrukcją języka i jest wykonywana szybciej niz dowolna funkcja nie będąca konstrukcją języka.

Załóżmy jednak, że w aplikacji wywołujemy klika razy strlen(), zawsze przy walidacji.
Różnica jednak będzie.

Co nie zmienia faktu że poruszamy się w bardzo małych różnicach czasu, ale ... ziarnko do ziarnka.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Maly przykladzik:
  1. <?php
  2. $str = 'ab';
  3. $str{7} = 'h';
  4. var_dump( $str );
  5.  
  6. function print_char( $char )
  7. {
  8. print( $char . '::' . ord( $char ) . '<br />' );
  9. }
  10. array_map( 'print_char', str_split( $str ) );
  11. ?>

Wynik:
Kod
string(8) "ab h" a::97
b::98
::32
::32
::32
::32
::32
h::104


Ja tam sie \0 spodziewalem a nie spacji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:33