Avatar billede sjh Nybegynder
08. august 2006 - 06:41 Der er 9 kommentarer og
1 løsning

Automatisk gå mappe tilbage

Jeg bixer med et lille script som automatisk tjekker om filen ligger i 1,2,3.. mapper tilbage..
men kan det ikke gøres mere fixt?? eller måske optimeres??

  function auto_detect_dir($filename) {
    $count = count(explode("/", str_replace("\\", "/", getcwd())));
    for ($i=0; $i <= $count; $i++) {
      if (file_exists($filename)) {
        return $filename; exit;
      }
      $filename = "../".$filename;
    }
    echo "Filen '<b>".basename($filename)."</b>' blev ikke fundet!"; exit;
  }
Avatar billede jakobdo Ekspert
08. august 2006 - 13:01 #1
Jeg synes den ser fin nok ud.

Har lige rettet lidt:

function auto_detect_dir($filename,$depth=5)
{
    $count = count(explode("/", str_replace("\\", "/", getcwd())));
   
    for ($i=0; $i <= $count && $i < $depth; $i++)
    {
        if(file_exists($filename))
        {
            return true;
        }
        $filename = "../".$filename;
    }
    return false;
}

Og så burde den måske smide lokation hvor den finder filen?
Avatar billede sjh Nybegynder
08. august 2006 - 13:11 #2
øhh min ide var nu at automatisk finde filen..

require_once(auto_detect_dir("minfil.php"));
Avatar billede sjh Nybegynder
08. august 2006 - 13:15 #3
Hvis filen ligger her: "C:\www\minfil.php" men jeg skal include den og jeg er her: "C:\www\test\ny\hp\" så skal den selv hoppe tilbage til og include den.
Avatar billede sjh Nybegynder
08. august 2006 - 14:23 #4
Er den her ikke bedre.. retuner fuld sti..

<?php
  if(!function_exists("auto_detect_file")){
    function auto_detect_file($strFilename) {
      $strCurrentDir = str_replace("\\", "/", getcwd());
      $arrCurrentDir = explode("/", $strCurrentDir);
      $intCurrentDir = count($arrCurrentDir);
      for ($i = $intCurrentDir; $i >= 0; $i--) {
        $strCurrentDir = implode("/", array_slice($arrCurrentDir, 0, $i));
        $strCurrentPath = ($strCurrentDir."/".$strFilename);
        if (file_exists($strCurrentPath)) {
          return $strCurrentPath; exit;
        }
      }
      echo "Filen '<b>".basename($strFilename)."</b>' blev ikke fundet!"; exit;
    }
  }

  require_once(auto_detect_file("include.test.php"));
?>
Avatar billede jakobdo Ekspert
08. august 2006 - 18:34 #5
Fantastisk! :o)
Avatar billede sjh Nybegynder
08. august 2006 - 22:05 #6
Når tror jeg lukker.. smid et svar jakobdo
Avatar billede jakobdo Ekspert
08. august 2006 - 22:12 #7
Behold du bare point selv...
Avatar billede sjh Nybegynder
08. august 2006 - 22:16 #8
øv øv..
Avatar billede jakobdo Ekspert
08. august 2006 - 22:28 #9
:o)
Avatar billede sjh Nybegynder
08. august 2006 - 22:35 #10
ja ja du skulle ha haft de 100 point skid :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester