PHP eksik kod - tarama dir, isim başlar sadece içeren ya da x ile sona

1 Cevap php

Daha önce yayınlanan bir soru ama ben henüz hataları .. ben php için oldukça yeni kulüpler almadan kodu karıştırmak için sınırlı am: (

(Dirs bu "id_1_1" gibi seri olarak adlandırılır, "id_1_2", "id_1_3" ve "id_2_1", "id_2_2", "id_2_3" vb)

Ben tüm dosyalar için bir dizin tarama ve sonra .. Sorun belli dizin isimleri dahil sadece biraz kodunu değiştirmek istiyorum mevcut klasörlerin her biri için aynı tanınan adlı dosyasını içerecektir ki, bu kodu vardır:

  1. "_1" ile biter
  2. "id_1_" ile başlar

Ben "_1" ve "id_1_" ile başlar sadece dirs yük olacak başka bir dosya ile biter sadece dirs yükleyecektir bir sayfa oluşturmak istiyorum ..

<?php 

include_once "$root/content/common/header.php";
include_once "$root/content/common/header_bc.php";
include_once "$root/content/" . $page_file . "/content.php";

$page_path = ("$root/content/" . $page_file);

$includes = array();

$iterator = new RecursiveIteratorIterator(
                new RecursiveDirectoryIterator($page_path), 
            RecursiveIteratorIterator::SELF_FIRST);

foreach($iterator as $file) {
    if($file->isDir()) {
        $includes[] = strtoupper($file . '/template.php');
    }
}

$includes = array_reverse($includes);

foreach($includes as $file){
   include $file;
}

include_once "$root/content/common/footer.php";

?>

Çok teşekkürler!

1 Cevap

foreach($iterator as $file) {
    if($file->isDir()) {
        // getFilename() actually gives the directory name, when it's um, a directory.
        $dirName = $file->->getFilename();
        if (substr($dirName, 0, 5) === 'id_1_') {
            $includes[] = strtoupper($file . '/template.php');
        }
    }
}

Bunu yapmanın başka yolları var, ama ben sadece bunu anlayacaksınız umuduyla, basit işlevleri ve mantığı eklemek için çalıştı.

Ends with gibi görünecektir

if (substr($dirName, -2) === '_1')