ugrás a tartalomhoz

Keresés egy tömb elemei között

Anonymous · 2006. Jún. 28. (Sze), 15.24
Sziasztok!

Van egy rakás xml állományom egy könyvtárban. Ezek között kéne keresnem a filenevük alapján.
Azt megcsináltam eddig, hogy beolvasom egy tömbbe a könyvtár file-jait és mivel egy szabály alapján épült fel a nevük eddig tökéletesen ment a keresés, azonban jött egy kis bonyodalom. Most azonban változtattak a szabályokon...
Szóval, így fest most egy filenev:
AAA123_060628_xxxxxx.xml

Az xxxxxx helyén tetszőleges számok állhatnak, 5 vagy 6 számjegy. És a keresésénél az összes eredményt meg kéne találnom.

Ha nem elég érthető, akkor:
megadja a felhasználó a keresési feltételt, pl: AAA123 és dátum 060628.
Ez alapján meg kéne találnom az összes olyan xml-t, amelynek a fileneve tartalmazza ezt a sztringet: AAA123_060628.

Remélem érthető voltam. :) Várom az ötleteket. Köszi!
 
1

php.net

jbtibor · 2006. Jún. 28. (Sze), 16.00
http://hu2.php.net/manual/en/function.glob.php
http://hu2.php.net/manual/en/function.fnmatch.php
http://hu2.php.net/manual/en/function.preg-match.php
http://hu2.php.net/manual/en/function.ereg.php
2

megoldás?

krey · 2006. Jún. 28. (Sze), 16.01
Lehet, hogy nem kéne ideírnom a kész megoldást, azért tanuld meg, hogy működik!

<?
function scanDir($condition, $date) {
   $returnArray = array();
   if ($dir = opendir('/könvtár/útvonala')) {
      while (false !== ($file = readdir($dir))) {
         if (stristr($file,$condition."_".$date))
            $returnArray[] = $file;
      }
      return $returnArray;
   } else {
      return false;
   }
}
?>
üdv. krey

ps. ha nem csak .xml-ek vannak a dirben, akkor lehet, hogy érdemes regexpet használni (^$condition_$date(.*)\.xml$)
3

preg_grep

Délczeg Gábor · 2006. Jún. 28. (Sze), 16.37
Ha az adott konyvtarban levo file -ok neveit beolvastad egy tombbe, akkor tessek raszabaditani a preg_grep fv. -t.... ;-)