Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] preg_match,eregi sprawdzanei z tablicy
mefjiu
post
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Problem rysuje się tak:
Postaram się opisać jak najbardziej łopatologicznie tongue.gif

Posiadam tablicę
$tablica = array('tekst1', 'tekst2');
i muszę sprawdzić czy w tekście $dirname nie występuje ani tekst1 ani tekst2"

zrobiłem to tak:
  1. <?php
  2. if(eregi($tablica $dirname))
  3. {
  4.  //Występuje
  5. }else{
  6.  //nie występuje
  7.  }
  8. ?>

próbowałem tez funkcją preg_match ale bez skutku.

Proszę o wszelką pomoc.
Go to the top of the page
+Quote Post
no_face
post
Post #2





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


in_array();" title="Zobacz w manualu PHP" target="_manual w tym przypadku bedzie dobrym rozwiazaniem.

Ten post edytował no_face 15.04.2008, 09:39:36
Go to the top of the page
+Quote Post
mefjiu
post
Post #3





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


gdyby $dirname zawierało tylko i wyłącznie tekst1 lub tekst2 to ta funkcja była by idealna, ale funkcja może zawierać coś takiego

$dirname = "tekst1 jestem dobrym tekstem zawierającym tekst2";

Wpadłem na pomysł że można dać w pętle ale jak mam 15 tys wartości do sprawdzenia i jak każdy sprawdzało by 8 razy to nie byłóo by to za szybkie. Specjaliści programiści czy ktoś ma bardziej optymalny sposób.
Go to the top of the page
+Quote Post
no_face
post
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


W takim razie pozostaje pentelka i zamiast eregow funkcje strpos();" title="Zobacz w manualu PHP" target="_manual w celu sprawdzenia istnienia stringa w stringu. eregi sa wolniejsze i do typowych, prostych zadan na stringach sie nie nadaja, szczegolnie jezeli ma to byc powtorzone 8x15k razy.
Go to the top of the page
+Quote Post
mefjiu
post
Post #5





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Nie dokończa podoba mi się przeglądanie tego pentlą bo te wartości 8x15k będą się dość szybko zwiększać za jakiś czas kod trzeba będzie zmieniać

wpadłem na coś takiego

funkcja str_replace i jej 4 parametr count okresla iel razy wykonała się dana funkcja
wiec potem sprawdzę ifem jeżeli wartość większa od 1 to znaczy ze znalazł :-)
w praktyce wygląda to tak (pisane z palca nie testowane)

  1. <?php
  2. $vowelsa = array("1920x1200", "1920x1440");
  3. $dane = str_replace($vowelsa, "", $tekst, $count);
  4.  
  5. if ($count > 0)
  6. {
  7. unset($dirname);
  8. }else{
  9. }
  10. ?>


co o tym myślicie ?

Testowałem i działa teraz proszę o opinie czy to jest optymalne i szybkie.

Ten post edytował mefjiu 15.04.2008, 11:35:32
Go to the top of the page
+Quote Post
Kicok
post
Post #6





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


strpos" title="Zobacz w manualu PHP" target="_manual w pętli będzie wydajniejszy.


Poczytaj też o break" title="Zobacz w manualu PHP" target="_manual

Ten post edytował Kicok 15.04.2008, 13:55:27


--------------------
"Sumienie mam czyste, bo nieużywane."
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 - 03:46