xml maken van dirs

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raymond

raymond

12/12/2007 21:20:00
Quote Anchor link
sorry heb iets te snel gepost toe hij nog niet af was!!

ik wil een xml maken van allen mappen die zich in een bepaalde bevinden.

een voorbeeld van de map structuur
<imgroot>
<3d>
<pdf_bestanden>
<productbeelden>
<aluminium>
<glas>
<hout>
<sfeerbeelden>

nou is de bedoeling dat de xml er op de volgende manier uit gaat zien

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
<Direcory name="imgRoot" path="../../imgRoot/" level="0">
    <
Item name="3D" path="../../imgRoot//3D" level="1"/>
    <
Item name="pdf_bestanden" path="../../imgRoot//pdf_bestanden" level="1"/>
    <
Item name="ProductBeelden" path="../../imgRoot//ProductBeelden" level="1">
        <
Item name="aluminium" path="../../imgRoot//ProductBeelden/aluminium" level="2"/>
        <
Item name="Glas" path="../../imgRoot//ProductBeelden/Glas" level="2"/>
        <
Item name="hout" path="../../imgRoot//ProductBeelden/hout" level="2"/>
        <
Item name="koper" path="../../imgRoot//ProductBeelden/koper" level="2"/>
        <
Item name="kuntstof" path="../../imgRoot//ProductBeelden/kuntstof" level="2"/>
        <
Item name="licht" path="../../imgRoot//ProductBeelden/licht" level="2"/>
        <
Item name="Portfolio" path="../../imgRoot//ProductBeelden/Portfolio" level="2"/>
        <
Item name="rvs" path="../../imgRoot//ProductBeelden/rvs" level="2"/>
        <
Item name="Staal" path="../../imgRoot//ProductBeelden/Staal" level="2"/>
    <
/Item>
    <
Item name="SfeerBeelden" path="../../imgRoot//SfeerBeelden" level="1"/>
<
/Direcory>
?>


natuurlijk ben ik zelf al een beetje aan het stoeien geweest. helaas lop ik vast op het volgende.
ik loop door de dir heem maar weet niet hoe ik de loep zo moet bouwen dat ie ook se sub mappne mee neemt.
en er moet een level mee worden gegevne zoals je kan zien in de xml ik weet ook niet hoe ik zo iets moet opbouwen.

de code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$dir
= "imgRoot/";

echo '<Direcory name="'.$dir.'" path="alksjflkjasdf" level="0">';


    if(isset($_GET["gdir"]) == TRUE)
    {

        if(get_magic_quotes_gpc() == FALSE)
            {

            $gdir = addslashes($_GET["gdir"]);
            }

        else
        {
        $gdir = $_GET["gdir"];
        }

        
        $gdir = htmlspecialchars($gdir,ENT_QUOTES);
        if(is_dir("../" . $gdir) == TRUE)
            {

            $dir = "../" . $gdir . "/";
            }
    }


$link_dir = str_replace("../","",$dir);
$handeling = opendir($dir);
    while(FALSE !== ($file = readdir($handeling)))
    {

    if ($file != "." AND $file != "..")    
        {

        if(is_dir($dir . $file) == TRUE)
            {

            echo '<Item name="'.$file.' path="'.$link_dir . $file.'" level="1"/>';
                
            }
        }
    }

echo '</Direcory>';
closedir($handeling);
?>
Gewijzigd op 01/01/1970 01:00:00 door Raymond
 
PHP hulp

PHP hulp

28/11/2024 22:30:44
 
Vincent

Vincent

12/12/2007 21:21:00
Quote Anchor link
Oke, leuk dat je dat wilt hè :-)
Succes.
 
Pieter van Linschoten

Pieter van Linschoten

12/12/2007 21:27:00
Quote Anchor link
Weet jij hoe dat moet?

Je wilt zeker net als bijvoorbeeld Direct Connections een bestandje van je mappen structuur maken, zodat mensen op hun eigen computer als het ware in jouw pc kunnen kijken, in plaats van de verbinding open houden en telkens opnieuw laden.
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
 
Bo az

Bo az

12/12/2007 22:25:00
Quote Anchor link
Goed, het is misschien een beetje offtoppic en heeft niet met je vraag te maken, maar waarom vermeld je level="x" terwijl je het "level" ook uit de xml structuur kan afleiden?
 
Raymond

raymond

12/12/2007 22:42:00
Quote Anchor link
daar zit wat in.
is een beetje overbodige info,
 
Raymond

raymond

13/12/2007 12:05:00
Quote Anchor link
ik ben ondertussen een heel beetje verder heb een werkend script met echo's alleen als ik alles in variables wil zetten en die dan in een keer wil echo'en dan krijg in de volgende error

Notice: Undefined variable: Xm: in c:...........................\listpovider.php on line 11
Notice: Undefined variable: Xm: in c:...........................\listpovider.php on line 23
Notice: Undefined variable: Xm: in c:...........................\listpovider.php on line 23

ik snap niet waarom hij de var niet wil zien.
wat doe ik fout...?

de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$dir
= "../imgRoot";
getDirectory($dir);
$XmL = '';

function
getDirectory($directory) {    

    require_once('clsListFiles.php'); // klasse includen
    $setDir = '.'; // basismap -> vanwaaruit wordt er vertrokken?
    $specDir = $directory ; // specifieke map -> welke bestanden wil je uiteindelijk zien?
    $XmL .= '<(vraagteken)xml version="1.0" encoding="UTF-8"(vraagteken)>';
    $XmL .= '<Direcory name="imgRoot" data="imgRoot">';    
    
    function
makeNodes($p_dir,$setDir) {
        $XML ='';    
        $list = new clsListFiles(); // altijd nodig, hier maak je een instantie aan van de listFiles klasse
        $list->setDir($setDir.'/'.$p_dir);
        $folders = $list->getFolders();
                
        if( count($folders) ) {
            foreach ($folders as $folder) { // voor elke map
                if ($folder != "thumbs") {
                   $XmL .= '<Item name="'.$folder.'" path="'.$p_dir.'/'.$folder.'">'."\n";
                    if($p_dir == '') {
                        makeNodes($folder, $setDir); // nodes aanmaken
                    } else {
                        makeNodes($p_dir.'/'.$folder, $setDir); // functie opnieuw aanroepen
                    }
                   $XmL .= '</Item>';
                }
            }
        }
        
        
    }

    makeNodes($specDir, $setDir); // nodes (= afzonderlijke bestanden -> niet mappen!) aanmaken

    $XmL.= '</Direcory>';
    echo $XmL;
}

?>
Gewijzigd op 01/01/1970 01:00:00 door raymond
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.