• 05-06-2008, 20:12:03
    #1
    Merhaba;
    Fonksiyonu çağıran dosyanın yolu (dizin ) 'nu nasıl bulabilirim.

    Mesela bunun gibi bişi yapmak istiyorum

    <?
    //a.php
    include '/abc/b.php';
    d();
    ?>
    --------
    <?
    //b.php
    function d(){
    echo hangi dizinden çağırıldı
    }
    ?>
  • 05-06-2008, 20:23:21
    #2
    Üyeliği durduruldu
    fonksiyonları sıralı şekilde yazdığın bir dosya varsa oradan bulabilirsin.
    ekmeğin fırında bulunması gibi
  • 05-06-2008, 20:30:39
    #3
    Hiç birşey anlamadım desem
  • 05-06-2008, 21:18:40
    #4
    Üyeliği durduruldu
    echo $_SERVER['DOCUMENT_ROOT'];
    sanırsam aradığınız bu ?
  • 05-06-2008, 22:16:34
    #5
    Hayır malesef bu değil. Mesela böyle bir kod yazdığımızda aşağıdaki sonucu vermesi lazım.

    <?
    //a.php
    include 'incs/b.php';
    ?>
    
    <?
    //b.php
    include dirname(__FILE__).'c.php';
    d();
    ?>
    
    <?
    //c.php
    function d(){
      //Buraya öyle bir kod yazmalıyızki, hangi dosya
      //çağırmış ise  bu fonksiyonu, o dosyanın bulunduğu 
      //dizini vermesi lazım. Mesela bu durumda D://www/incs/b.php yazması lazım
    }
    ?>
    ?>
  • 05-06-2008, 23:33:27
    #6
    <?
    function b($dosya){
          include $dosya;
          echo dirname($_SERVER['SCRIPT_FILENAME'])."/".$dosya;
          }
    b("b.php");
    ?>
    böyle birşey yazdım ama bi bak geliştirebilirsin
  • 06-06-2008, 12:45:49
    #7
    Malesef buda değil. $_SERVER['SCRIPT_FILENAME'] ilk çalıştırılan dosyanın dizin yolunu veriyor. Benim amacım fonksiyonu çağıran dosyanın dizin yolunu bulmak.
    Mesela bu şekilde dosyalar oluşturduğumuzda D://www/incs/b.php yazması lazım ekrana.
    a.php index sayfamız yani ilk olarak o çalışacak.
    <?
    //a.php
    include 'incs/b.php';
    ?>
    <?
    //b.php
    include dirname(__FILE__).'c.php';
    d();
    ?>
    <?
    //c.php
    function d(){
      //Buraya öyle bir kod yazmalıyızki,  bu fonksiyonu hangi dosya
      //çağırmış ise, o dosyanın bulunduğu 
      //dizini vermesi lazım. Mesela bu durumda D://www/incs/b.php yazması lazım
    }
    ?>
  • 06-06-2008, 16:50:57
    #8
    hayır script_filename dizini verir kullanımında b(c.php); dediğin zaman c.php'nin yolunu yazar
  • 06-06-2008, 19:48:46
    #9
    Ama benim demek istediğim farklı. Fonksiyona bilgi girişi olmadan fonksiyonu çağıran dosyanın dizinini bulmam lazım. Mesela fonksiyonu başka bir dosyada tanımladım ama başka bir dosyada çağırıyorum, işte bu durumda fonksiyonu çağırdığım dosyanın dizini almam lazım fonksiyonun içinde