Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> znowu wyrazenia...
Rafiki
post 21.05.2006, 18:00:31
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


Otoz mam taki problem.

mam dany wzorzec do preg_metch'a i zmienna ktora chce nim potraktowac, a wlasciwie kilkanascie zmiennych.

i czy musza pisac np kilkanascie warunkow if z preg_matchem czy da sie zrobic to jakos jednym ifem i jednym preg_matchem wymieniajac zmienne np poprzecinku albo jakos inaczej ? nieusmiecha mi sie pisac kilkanascie warunkow z kazdy z ta sama zawartoscia ale odnoszacy sie do innej zmiennej :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mike
post 21.05.2006, 18:08:53
Post #2





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

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


Możesz coś w tym stylu:

  1. <?php
  2.  
  3. $strPattern = 'jakiś wzorzec';
  4. $arrVars = array( $zmienna_1, $zmienna_2, $zmienna_3, $zmienna_4 );
  5.  
  6. $blnResult = true;
  7.  
  8. foreach( $arrVars as $mixVar )
  9. {
  10. $intMatches = preg_match( $strPattern, $mixVar );
  11.  
  12. if( $intMatches == 0 )
  13. {
  14. $blnResult &= false;
  15. break; // jeśli chcesz sprawdzić wszystkie kolejne, nawet jak któryś 
  16.  // nie pasuje to wywal tego break'a
  17. }
  18. }
  19.  
  20. var_dump( $blnResult );
  21.  
  22. ?>
Go to the top of the page
+Quote Post
bendi
post 24.05.2006, 11:41:59
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Mozna nieco inaczej snitch.gif
Korzystajac z alternatywy w regularkach
  1. <?php
  2.  
  3. $sSearch = 'jakiś wzorzec';
  4. $aPattern = array( $zmienna_1, $zmienna_2, $zmienna_3, $zmienna_4 );
  5.  
  6. preg_match_all( '/(' . join( ')|(', $aPattern ) . ')/', $sSearch, $aMatches );
  7.  
  8. print_r( $aMatches ); //tutaj masz wyniki
  9.  
  10. ?>


Mozna jeszcze zrezygnowac z "lapania" zanlezionych elementow poprzez usuwanie dodanie po kazdym rozpoczetym nawiasie ?:, ale to juz sobie musisz sam sprawdzic. Poza tym jak nie pasuje Ci sposo ulozenia wynikow, to mozna skorzystac z odpowiednich stalych ale o tym wiecej w manualu.

Pozostaje jeszcze kwestia "unikania" (escape'owania) znakow zastrzezonych dla regularek, wtedy najlepiej najpierw przemielic tablice funkcja preg_quote" title="Zobacz w manualu php" target="_manual


--------------------
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 Wersja Lo-Fi Aktualny czas: 27.06.2025 - 18:54