Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] preg_match,eregi sprawdzanei z tablicy
Forum PHP.pl > Forum > Przedszkole
mefjiu
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.
no_face
in_array();" title="Zobacz w manualu PHP" target="_manual w tym przypadku bedzie dobrym rozwiazaniem.
mefjiu
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.
no_face
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.
mefjiu
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.
Kicok
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.