Avatar billede m_fisker Nybegynder
16. september 2005 - 12:33 Der er 35 kommentarer og
1 løsning

PHP Undermapper ->index-filer

hey..
er der nogle er har et php script der kan finde index-filer i undermapper.

fx.

Startmappe - V
          Mappe1 -> index.htm
          Mappe2 -> index.htm
          Mappe2 -> index.htm
                o.s.v.

og der efter lave link til dem.
Avatar billede jakobdo Ekspert
16. september 2005 - 13:36 #1
Se her:

<?php
//http://www.eksperten.dk/spm/648533

$path = getcwd();

echo tjekDir($path);

function tjekDir($dir)
{
    $output = "";
   
    // Open a known directory, and proceed to read its contents
    if (is_dir($dir))
    {
        if ($dh = opendir($dir))
        {
            while (($file = readdir($dh)) !== false)
            {
                if(is_dir($dir . "/" . $file) && ($file != "." && $file != ".."))
                {
                    tjekDir($dir . "/" . $file);
                }
                else
                {
                    //if (preg_match('/index.\\w+/', $file))
                    if (preg_match('/\d{6}.\\w+/', $file))
                    {
                        echo "File: " . $file . "<br>";
                    }
                    //echo "filename: $file : filetype: " . filetype($dir . "/" . $file) . "<br>\n";
                }
            }
            closedir($dh);
        }
    }
    return $output;
}

echo "<hr>";
show_source(__FILE__);

?>
Avatar billede jakobdo Ekspert
16. september 2005 - 13:38 #2
Du skal bruge: if (preg_match('/index.\\w+/', $file))
og fjerne: if (preg_match('/\d{6}.\\w+/', $file))
Avatar billede m_fisker Nybegynder
16. september 2005 - 13:39 #3
$output = ""; Er det hvor den finder undermapper i ??

$output = "Startmappe";
Avatar billede jakobdo Ekspert
16. september 2005 - 13:42 #4
$startmappe = "blabla";
echo tjekDir($startmappe);

Jeg kaldte den bare $path.

Undermapper finder den her:
if(is_dir($dir . "/" . $file) && ($file != "." && $file != ".."))
                {
                    tjekDir($dir . "/" . $file);
                }
Avatar billede m_fisker Nybegynder
20. september 2005 - 09:07 #5
jeg har nogle problemmer med at lavde link ud af det.. for når jeg leger i script er det hele "Roden" den viser.. hvor det er kun "Mappe1/index.htm" jeg skal bruge
Avatar billede jakobdo Ekspert
20. september 2005 - 09:19 #6
Nemmeste og hurtigste måde jeg lige kan komme i tanke om, er at du lave en str_replace() på file, så f.eks. replacer: /var/www/hotel/ditdomain/htdocs/mappe/index1.htm så det kommer til at blive: www.ditdomain.dk/mappe/index1.htm
echo str_replace("/var/www/hotel/ditdomain/htdocs","www.ditdomain.dk",$file);
Avatar billede m_fisker Nybegynder
20. september 2005 - 09:33 #7
kan du ikke prøve at lave et fx. med link kode til

www.ditdomain.dk/mappe/index1.htm
echo str_replace("/var/www/hotel/ditdomain/htdocs","www.ditdomain.dk",$file);
Avatar billede m_fisker Nybegynder
20. september 2005 - 09:33 #8
for jeg kan ikke få det til at funke
Avatar billede jakobdo Ekspert
20. september 2005 - 09:37 #9
Prøv at vis mig hvad din kode skriver ud.
Og hvad du rent faktisk gerne vil have til at stå.
Så skal jeg kigge på det.
Avatar billede m_fisker Nybegynder
20. september 2005 - 09:48 #10
link -> startmappe/mappe1/index.htm



<?php
//http://www.eksperten.dk/spm/648533

$path = getcwd();

echo tjekDir($path);

function tjekDir($dir)
{
    $output = "";
   
    // Open a known directory, and proceed to read its contents
    if (is_dir($dir))
    {
        if ($dh = opendir($dir))
        {
            while (($file = readdir($dh)) !== false)
            {
                if(is_dir($dir . "/" . $file) && ($file != "." && $file != ".."))
                {
                    tjekDir($dir . "/" . $file);
                }
                else
                {
                    if (preg_match('/index.\\w+/', $file))
                    //if (preg_match('/\d{6}.\\w+/', $file))
                    {
                        //echo "File: " . $file . "<br>";
                    }
                    //echo "filename: $file : filetype: " . filetype($dir . "/" . $file) . "<br>\n";


  echo "<br><a href='" . str_replace("/var/www/hotel/ditdomain/htdocs/startmapppe","sub.domain.dk/startmappe/",$file) . "'>link til index.htm i mappe1</a><br>";
              }
            }
            closedir($dh);
        }
    }
    return $output;
}

echo "<hr>";


?>
Avatar billede jakobdo Ekspert
20. september 2005 - 10:03 #11
Jeg mener, jeg vil have output fra: echo "File: " . $file . "<br>";
Og hvordan du gerne vil have det til at se ud: f.eks. http://www.domain.dk/mappe1/fil.zip
Avatar billede m_fisker Nybegynder
20. september 2005 - 10:18 #12
Avatar billede m_fisker Nybegynder
20. september 2005 - 10:18 #13
File: index.html
File: index.htm
File: index.html
File: index.htm
File: index.htm
Avatar billede jakobdo Ekspert
20. september 2005 - 10:22 #14
Prøv at ret:
echo "File: " . $file . "<br>";
til:
echo "File: " . $dir . "/" . $file . "<br>";
Avatar billede m_fisker Nybegynder
20. september 2005 - 11:21 #15
File: /var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/elmer/1-12-04/index.html
File: /var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/elmer/test2/index.htm
File: /var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/elmer/test2/index.html
File: /var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/elmer/test3/index.htm
File: /var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/elmer/August/index.htm
Avatar billede m_fisker Nybegynder
20. september 2005 - 11:23 #16
men den skal linke til fx. elmer/August/index.htm
Avatar billede jakobdo Ekspert
20. september 2005 - 11:33 #17
Test denne: echo "<br><a href='" . str_replace("/var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/","",$file) . "'>link til index.htm i mappe1</a><br>";
Avatar billede m_fisker Nybegynder
20. september 2005 - 11:38 #18
Avatar billede jakobdo Ekspert
20. september 2005 - 12:00 #19
Så ret:
str_replace("/var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/","",$file)
til:
str_replace("/var/www/hotel/ditdomain/htdocs/","http://",$file)
Avatar billede m_fisker Nybegynder
20. september 2005 - 12:11 #20
der var ingen forskel..

men

i title-link skal stå fx. August
den mappe hvor den finder index.htm

echo "<br><a href='" . str_replace("/var/www/hotel/ditdomain/htdocs/fdf.coolfish.dk/","http://",$file) . "'>link til index.htm i mappe1</a><br>";
Avatar billede jakobdo Ekspert
20. september 2005 - 12:28 #21
Smid lige dette i bunden af php koden:
<?php
echo "<hr>";
show_source(__FILE__);
?>
Avatar billede m_fisker Nybegynder
20. september 2005 - 12:30 #22
Avatar billede jakobdo Ekspert
20. september 2005 - 12:44 #23
Prøv lige at ret:
if (preg_match('/index.\\w+/', $file))
                    //if (preg_match('/\d{6}.\\w+/', $file))
                    {
                      //echo "File: " . $dir . "/" . $file . "<br>";
//echo "sikkert :)";

echo "<br><a href='" . str_replace("/for en sikkkerhed skyld :)/fdf.coolfish.dk/","http://",$file) . "'>link til index.htm i mappe1</a><br>";

                    }
                    //echo "filename: $file : filetype: " . filetype($dir . "/" . $file) . "<br>\n";
til:
if (preg_match('/index.\\w+/', $file))
{
    echo "File: " . $dir . "/" . $file . "<br>";
}
Avatar billede m_fisker Nybegynder
20. september 2005 - 12:46 #24
sådan..
Avatar billede m_fisker Nybegynder
20. september 2005 - 12:46 #25
men så er hele rod-stien
Avatar billede jakobdo Ekspert
20. september 2005 - 12:49 #26
Ret:
echo "File: " . $dir . "/" . $file . "<br>";
til:
echo str_replace("/hsphere/local/home/mfisker/","http://",$dir) . "/" . $file . "<br>";
Avatar billede m_fisker Nybegynder
20. september 2005 - 15:04 #27
oki nu virker det..
men

/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/August

til

Auguest
Avatar billede jakobdo Ekspert
20. september 2005 - 15:18 #28
Hvad mener du?
Avatar billede m_fisker Nybegynder
20. september 2005 - 15:21 #29
http://fdf.coolfish.dk/elmer/elmer.php

så linke heder fx. Auguest
Avatar billede jakobdo Ekspert
20. september 2005 - 15:55 #30
Test lige denne:

$fil = str_replace("/hsphere/local/home/mfisker/","http://",$dir) . "/" . $file;
$mappe = str_replace("/hsphere/local/home/mfisker/elmer/","",$dir);
   
echo "<a href='$fil'>$mappe</a><br>";
Avatar billede m_fisker Nybegynder
20. september 2005 - 17:40 #31
nop..
/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/1-12-04
/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/test2
/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/test2
/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/test3
/hsphere/local/home/mfisker/fdf.coolfish.dk/elmer/August
Avatar billede m_fisker Nybegynder
21. september 2005 - 09:54 #32
har du nogle ider.. hvordan vi fix det
Avatar billede jakobdo Ekspert
21. september 2005 - 10:19 #33
Test denne fil:

Den skal lægges i elmer-diret!

<?php
$path = getcwd();

echo tjekDir($path,"/");

function tjekDir($path,$dir)
{
    $output = "";
    $fullPath = $path . $dir;
   
    // Open a known directory, and proceed to read its contents
    if (is_dir($fullPath))
    {
        if ($dh = opendir($fullPath))
        {
            while (($file = readdir($dh)) !== false)
            {
                if(is_dir($fullPath . "/" . $file) && ($file != "." && $file != ".."))
                {
                    tjekDir($path,$dir . $file . "/");
                }
                else
                {
                    if (preg_match('/index.\\w+/', $file))
                    {
                        echo "<a href=\"http://fdf.coolfish.dk/elmer".$dir.$file."\">".$dir."</a><br>\n";
                        flush();
                    }
                }
            }
            closedir($dh);
        }
    }
    return $output;
}

echo "<hr>";
show_source(__FILE__);

?>
Avatar billede m_fisker Nybegynder
21. september 2005 - 10:54 #34
du er for sej..
smid et svar. så vi kan lukke..
Avatar billede jakobdo Ekspert
21. september 2005 - 10:59 #35
Svar!
Og tak! :o)
Avatar billede jakobdo Ekspert
21. september 2005 - 11:03 #36
Takker for point!
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