• 18-02-2022, 18:01:50
    #1
    Selamlar,
    Yapmak istediğimi şu örnek ile kısaca açıklayacak olursam
    "Hayvanlar" Adında bir klasörüm var ve bu sayfanın içinde "kelebek.php" , "Aslan.php", "Köpek.php" Gibi php uzantılı dosyalarım var.
    Kelebek.php dosyasının içinde $title ve $keywords olmak üzere iki tane değişken tanımlı.

    Php klasör listeleme tekniği ile tüm php dosyalarını tek sayfada listeleyip ve her php sayfasının içinde barındırdığı $title ve $keywords yazısını çekip listede göstermek istiyorum.

    Ben Listelemeyi başardım fakat içindeki verileri nasıl çekeceğimi bulamadım.
    <?php
    $sayfa = isset($_GET["sayfa"]) ? (int) $_GET["sayfa"] : 1;
    if(empty($sayfa)) { $sayfa = 1; }
    if($sayfa < 1) $sayfa = 1;
    $dizin = glob("dosyalar/*.{php}", GLOB_BRACE); // Okunacak dizin ve dosya türleri
    
    $sayfabasi_kayit = 5; // sayfa başı gösterilecek kayıt sayısı
    $x = 3; //geçerli sayfanın Önceki Sonraki seçimleri arasında görünmesini istediğiniz adet sayfa butonu
    $link = "?sayfa=";
    natsort($dizin);
    
    $toplamkayit = count($dizin);
    $toplamsayfa = ceil($toplamkayit / $sayfabasi_kayit);
    if($sayfa > $toplamsayfa) { $sayfa = 1; }
    $baslangic = ($sayfa-1)*$sayfabasi_kayit;
    $dizinliste = array();
    
    if($dizin){ //$dizin false veya boş değilse  
        $dizinliste = ($toplamkayit > $sayfabasi_kayit) ? array_slice($dizin,$baslangic,$sayfabasi_kayit) : $dizin;
    } else {
        echo "Bu dizinde dosya bulunamadı!";
    }
    
    //  « İlk  Önceki 1 [2] 3 4 Sonraki Son » butonları oluşturan kodlar
    $sayfala = "";
    if($toplamkayit > $sayfabasi_kayit) {
        if($sayfa > 1){
            $onceki = $sayfa-1;
            $sayfala .="<li><a href=\"".$link."1\">&laquo; İlk</a></li>";
            $sayfala .="<li><a href=\"".$link.$onceki."\">Önceki</a></li>";
        }
        if($sayfa==1){ $sayfala .="<li><a class=\"active\">1</a></li>"; }
        elseif($sayfa-$x < 2){ $sayfala .="<li><a href=\"".$link."1\">1</a></li>"; }  
        if($sayfa-$x > 2){ $i = $sayfa-$x; }else{ $i = 2; }
        if($sayfa-$x-10 > 0){ $sayfala .="<li><a class=\"active\" href=\"".$link.($sayfa-$x-10)."\">".($sayfa-$x-10)."</a></li>"; }
        for($i; $i<=$sayfa+$x; $i++) {
            if($i==$sayfa){ $sayfala .="<li><a class=\"active\">$i</a></li>"; }else{ $sayfala .="<li><a href=\"".$link.$i."\">$i</a></li>"; }
            if($i==$toplamsayfa) break;
        }
        if($sayfa+$x+10 < $toplamsayfa){ $sayfala .="<li><a class=\"active\" href=\"".$link.($sayfa+$x+10)."\">".($sayfa+$x+10)."</a></li>"; }
        if($sayfa < $toplamsayfa){
            $sonraki = $sayfa+1; $sayfala .="<li><a href=\"".$link.$sonraki."\">Sonraki</a></li>";
            $sayfala .="<li><a href=\"".$link.$toplamsayfa."\">Son &raquo;</a></li>";
        }
    }
    
    foreach ($dizinliste as $dosyayolu) { // $dizinliste'ye alınan dosyaları sayfaya yazdırıyoruz
        $dosyaadi = basename($dosyayolu); // Dosya yolundan sadece dosya ismi almak için
     echo $dosyaadi;
    }
    echo $sayfala;
    ?>
  • 18-02-2022, 18:04:27
    #2
    Üyeliği durduruldu
    Her PHP dosyasında bir boolean GET parametresi tanımlayın, kullanıcı buraya true değerini verdiğinde, değişkenin değerini client'e döndürsün. cURL veya benzeri varyasyonlar ile bu yollara istek atabilirsiniz. Onun dışında regex ile dosyadaki belirli metin katarlarını parçalayabilirsiniz.
  • 18-02-2022, 18:27:10
    #3
    Anladım bu şekilde listeleyerek yapamam yani
  • 18-02-2022, 18:29:06
    #4
    Bu gayet yapılabilir basit bir şey üşenmezsem bilgisayara geçince birazdan çözümü atarım.
  • 18-02-2022, 18:35:53
    #5
    blap adlı üyeden alıntı: mesajı görüntüle
    Bu gayet yapılabilir basit bir şey üşenmezsem bilgisayara geçince birazdan çözümü atarım.
    Eyvallah hocam bekliyorum
  • 18-02-2022, 21:20:12
    #6
    Aşağıdaki kod en pratik çözüm bence tertemiz çalışıyor. bu dosya hayvanlar klasörüne gidiyor eğer orası boşsa klasör boş diyor. Eğer oradaki dosyalar içinde title ve keyword değişkenleri varsa yazıyor.
    Tüm kaynak kodları indirmeniz için swisstransfere yükledim buyrun

    https://www.swisstransfer.com/d/76f5...8-6d879c5be6da

    $directory = 'hayvanlar';
    
    $files = array_diff(scandir($directory), array('.', '..'));
    
    if(count($files) == 0){
        die("Klasör Boş");
    }
    foreach($files as $file){
        include_once($directory."/".$file);
        if(isset($title)){
            echo $title."</br>";
        }
        if(isset($keyword)){
            echo $keyword."</br>";
        }
    }