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

<?
<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

<?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);
?>
Oke, leuk dat je dat wilt hè :-)
Succes.
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.
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?
daar zit wat in.
is een beetje overbodige info,
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:

<?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;
}
?>


Reageren