• 16-12-2007, 03:33:30
    #1
    Öncelikle phpden anlamam bu sebeple umarım derdimin çaresi phpde vardır
    Şimdi ben şunu yapmak istiyorum. Ftpdeki siteme ait bir klasörün index sayfasında, o klasördeki dosyaları listeleyip o sayfaların titleları ile beraber link vermek. Googleda bu konuyu araştırırken şöyle bir kod buldum.
    <?php
    $dosyalar = glob("*");
    for($i=0;$i<count($dosyalar);$i++)
    echo $dosyalar[$i] . "<br />";
    ?>
    Bu kod ile klasörde yer alan herşeyi listeletebildim;
    sayfam.php
    sayfam2.php
    sayfam3.php
    gibi, fakat şöyle yapınca :
    <?php
    $dosyalar = glob("*");
    for($i=0;$i<count($dosyalar);$i++)
    echo "http://www.sitem.com/klasor/$dosyalar[$i]<br />";
    ?>
    sayfada direk
    http://www.sitem.com/klasor/sayfam.php
    http://www.sitem.com/klasor/sayfam2.php
    http://www.sitem.com/klasor/sayfam3.php
    gibi çıkıyor ama link olarak değil sadece metin olarak. Zaten link olarak çıksa bile istediğim olayı yapamadım çünkü linkte yer alacak metinde link verilen sayfanın titleı olsun istiyorum.
    Titleı elde edebilmek için yine googledaki araştırmam sonucu şöyle bir kod buldum :
    <? 
    $url = $_GET['url']; 
    $file = file_get_contents("$url") or $d = 1; // buraya kodları hangi sayfadan çekeceğini yazıyorsun . 
    if ($d) { echo "error";} 
    else { 
    $cek = explode("<title>",$file); 
    $cek = explode("</title>",$cek[1]); 
    $cektim = trim($cek[0]); 
    echo $cektim; } 
    ?>
    Ama gel gelelim bu bulduğum 2 koduda birleştiremedim. Bu konuda yardımcı olabilirmisiniz acaba?
    Not : Sitede veritabanı yoktur. Manuel oluşturulan sayfalar vardır ve bu sayfalar titleları ile birlikte anasayfada listelemek amaçlanmıştır.
  • 16-12-2007, 14:25:54
    #2
    Daha kısası olabilir belki ama benim ilk aklıma gelen bu şekil bir şey oldu.

    <?php
    $dosyalar = glob("*");
    $son=count($dosyalar);
    $d=0;
    $klasor="/deneme/";
    $bu=$_SERVER['PHP_SELF'];
    $bu=str_replace($klasor,"",$bu);
    
    for($i=0;$i<$son;$i++) {
      if($dosyalar[$i]!=$bu && $dosyalar[$i]!='error_log') {
        $url="http://".$_SERVER["HTTP_HOST"].$klasor.$dosyalar[$i];
        $file=file_get_contents($url) or $d=1;
        if ($d) { echo "error"; }
        else {
        $cek=explode("<title>",$file);
        $cek=explode("</title>",$cek[1]);
        $baslik=$cek[0];
        echo "<a href=http://www.sitem.com".$klasor.$dosyalar[$i].">".$baslik."</a><br />";
        }
      }
    }
    ?>
  • 16-12-2007, 16:21:37
    #3
    Üyeliği durduruldu
    açıkçası neden böle bir şey yapmya çalıştıgını anlamadım.
    Bir klasöre php dosyası atıp glob(); ile içindekileri görmek neden yapılır merak ettim dogrusu?

    evet manuel olarak sayfayı anasayfada göstermek istediğini söylemişsin. ama ben olsaydım burda mysql kullanırdım.
  • 16-12-2007, 18:05:36
    #4
    Aykut adlı üyeden alıntı: mesajı görüntüle
    Daha kısası olabilir belki ama benim ilk aklıma gelen bu şekil bir şey oldu.
    <?php
    $dosyalar = glob("*");
    $son=count($dosyalar);
    $d=0;
    $klasor="/deneme/";
    $bu=$_SERVER['PHP_SELF'];
    $bu=str_replace($klasor,"",$bu);
    for($i=0;$i<$son;$i++) {
      if($dosyalar[$i]!=$bu && $dosyalar[$i]!='error_log') {
        $url="http://".$_SERVER["HTTP_HOST"].$klasor.$dosyalar[$i];
        $file=file_get_contents($url) or $d=1;
        if ($d) { echo "error"; }
        else {
        $cek=explode("<title>",$file);
        $cek=explode("</title>",$cek[1]);
        $baslik=$cek[0];
        echo "<a href=http://www.sitem.com".$klasor.$dosyalar[$i].">".$baslik."</a><br />";
        }
      }
    }
    ?>
    Bu çalışmadı malesef
    Hard_Love dediğim gibi sitede sql yok. Manuel oluşturulan sayfalar var ve bunları titlerı ile listelemem gerekiyor.
  • 16-12-2007, 18:08:37
    #5
    Ben kodu çalıştırdım da yazdım ..
    $klasor değişkeninin içeriğini doğru yazdığına emin misin ? ..
  • 16-12-2007, 18:09:53
    #6
    Kurumsal PLUS
    <?php
    $dosyalar = glob("*");
    for($i=0;$i<count($dosyalar);$i++) {
    
    $url = "http://www.sitem.com/klasor/".$dosyalar[$i];
    $file = file_get_contents($url) or $d = 1; // buraya kodları hangi sayfadan çekeceğini yazıyorsun . 
    if ($d) { echo "error";} 
    else { 
    $cek = explode("<title>",$file); 
    $cek = explode("</title>",$cek[1]); 
    $cektim = trim($cek[0]); 
    }
    echo "<a href=\"http://www.sitem.com/klasor/".$dosyalar[$i]."\">".$cektim."</a><br />";
    }
    ?>
  • 16-12-2007, 18:15:48
    #7
    Aykut adlı üyeden alıntı: mesajı görüntüle
    Ben kodu çalıştırdım da yazdım ..
    $klasor değişkeninin içeriğini doğru yazdığına emin misin ? ..
    evet o değişkeni doğru olarak düzenledim.
    bartuc'un verdiği kodda da hata verdi
    Neyi yanlış yaptığımıda anlamadım ki. errorlog da şunlar var :
    [16-Dec-2007 18:13:27] PHP Warning:  file_get_contents(http://www.sitem.com/klasor/sayfam.php) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: no suitable wrapper could be found in /home/sitem/public_html/klasor/index.php on line 86