PHP düzenli ifadede parametrelere dayalı bir dosyayı belirlenmesi

3 Cevap php

Ben belirli parametrelere dayalı bir dosyayı belirlemek için çalışıyveyaum. Birincisi, ben ardışık aşağıdaki gibi bir dizin yapısı yineleme ediyveyaum:

  • C :/ Users / programcı / Dosyalar / yorum / XBOX
  • C :/ Users/programmer/Downloads/reviews/PS3
  • C :/ Users / programcı / Dosyalar / yorum / GBA

Dizenin sonunda oyun konsolu tür fark edin. Bunu takiben, biz şu var:

  • C :/ Users / programcı / Dosyalar / yorum / XBOX/p123.html
  • C :/ Users / programcı / Dosyalar / yorum / XBOX/r123.html

Eğer ikinci bölümde fark ederseniz, ap ve bir r vardır birine sahip bir dosya var.

Benim nihai hedef olan r * dosyaları p * hangi belirlemek ve hangi, bu yüzden benim nveyamal ifade ben aşağıdaki (pseudo-code) bir şey olmak istiyveyaum

/console/p*/

veya

/console/r*/

In summary, I need to iterate through the files ve know at the end of my function the filename AND the filetype (p veya r) without caring about the console type. Thanks fveya the help

3 Cevap

gibi

 preg_match('~/([pr])[^/]+$~', $file, $m);
 if($m[1] == 'p') something
 if($m[1] == 'r') something else

/ / Edit: Bu doğrudan soru cevaplar rağmen, bu en etkili yol değildir. Ne istediğinizi bağlı olarak, diğer insanların önerilen veya glob () gibi,) topak (kullanarak daha iyi + daha iyi preg_grep () ya da, yerine dosyaların bir veritabanı. Size ulaşmak için çalışıyoruz Neden bahsediyorsun daha bize neler söyleyebilirsiniz?

PHP glob işlevi belirli bir ölçüte uyan tüm eşleşen dosyaları bir dizin üzerinden yürüyecek.

$files = array();

foreach(glob("C:/Users/programmer/Downloads/reviews/*/p*.html") as $filename) {
    $files['p'][] = $filename;
}

foreach(glob("C:/Users/programmer/Downloads/reviews/*/r*.html") as $filename) {
    $files['r'][] = $filename;
}

Bu size bu gibi bakarak bir dizi verecektir:

array (
    p =>  array (
        0 => p123.htm
        1 => p456.htm
    )

    r => array (
        0 => r123.htm
        1 => r456.htm
    )
)

Eğer sadece kendi dosya adının ilk harfi ile ayırt dosyaların listeleri, almak istediğiniz varsayarak:

, Dizin ağacı yürümek $ dosya gibi bir değişken dosya olsun.

$ Dosya [$ dosya [0]] [] = $ dosya;