Volledige versie bekijken : [solved] directory uitlezen en xml aanmaken
yrm
%Europe/Berlin %541 %2006, 13:59
hallo iedereen,
ik wil door middel van php een directory uitlezen en alle .txt bestanden in een xml zetten.
ik lees de directory uit op de volgende manier:
<?
$filter = ".txt";
$directory = "news";
@$d = dir($directory);
if ($d) {
while($entry=$d->read()) {
$ps = strpos(strtolower($entry), $filter);
if (!($ps === false)) {
$items[] = $entry;
}
}
$d->close();
sort($items);
}?>
mijn probleem is nu hoe ik het op de juiste manier in een xml krijg.
de xml zou er ongeveer als volgt uit moeten zien.
<tree>
<folder label="categorie1">
<link label="Headline1" url="Headline1"/>
<link label="Headline2" url="Headline2"/>
<link label="Headline3" url="Headline3"/>
</folder>
<tree>
waarbij headline1, 2 en 3 de naam van het txt bestand zonder .txt zou moeten zijn.
als er iemand is die mij een beetje op weg kan helpen heel graag.
alvast bedankt!!
greets,
yoram
josko
%Europe/Berlin %648 %2006, 16:33
<?php
$handler = opendir("news");
$XML = "";
while( $file = readdir( $handler ) )
{
if( $file != "." && $file != ".." )
{
$BOOM = explode(".", $file );
$XML .= "<link label=\"".$BOOM[0]."\" url=\"".$file."\" > ";
}
}
$Xml = "
<tree>
<folder label=\"news\" >
".$XML."
</folder>
</tree>
";
echo $Xml;
?>
zoiets?
de methode explode( $needle, $haystack ) [0] werkt omdat dit een array teruggeeft :)
--- edit ----
foutjes zijn eruit.
en overigens, explode doet het niet op alle servers?
TheZwier
%Europe/Berlin %661 %2006, 16:52
Die methode werkt lang niet op alle servers, en je had nog een paar foutjes in script staan.
Deze methode werkt nagenoeg altijd:
<?php
$handler = opendir("news");
$xml = "";
while( $file = readdir( $handler ) )
{
if( $file != "." && $file != ".." )
{
$xml .= "<link label='".preg_replace("/\.txt/i", "", $file)."' url=".$file.">";
}
}
$Xml = "
<tree>
<folder label='news' >
".$xml."
</folder>
</tree>
";
echo $xml;
?>
//edit: het heeft geen syntax errors, maar ik weet niet zeker of het werkt.
brossiekoppie
%Europe/Berlin %840 %2006, 21:10
Hier heb je wel wat aan :D
http://www.flashfocus.nl/forum/showpost.php?p=157093&postcount=2
yrm
%Europe/Berlin %576 %2006, 14:50
@josko jou script werkt inderdaad niet op mijn server..
@TheZwier ik krijg ook geen errors maar er gebeurt ook gewoon helemaal niks..
in ieder geval bedankt voor de reactie!
josko
%Europe/Berlin %582 %2006, 14:58
methode weggewerkt nu,
maar wat werkte er niet? gaf ie gewoon niks terug of kreeg je een error?
yrm
%Europe/Berlin %595 %2006, 15:17
hij gaf eerst een error en nu geeft hij geen error maar geeft hij gewoon niks terug.
josko
%Europe/Berlin %598 %2006, 15:22
hij gaf eerst een error en nu geeft hij geen error maar geeft hij gewoon niks terug.
Dat is raar :)
Maar je roept dit wel gewoon als .php aan en niet via flash hea 8)
nee, natuurlijk niet :)
Maargoed.
het lijkt mij vrij vreemd dat ie het niet doet.
ik zie vooralsnog geen fouten.
mogen wij de error zien die je kreeg, wat ie nu geeft, etc?
yrm
%Europe/Berlin %604 %2006, 15:30
ik roep hem nu gewoon aan als .php
uit eindelijk wil ik het wel gaan gebruiken met flash.
ik zat ook even te kijken (in plaats van domweg kopieren) maar er word alleen xml weergegeven dmv van de echo toch? en niet naar een xml geschreven.
wat hij nu geeft: helemaal niks
die error die ik eerst kreeg heb ik niet gekopied en heb dat script ook niet meer sorry.
josko
%Europe/Berlin %609 %2006, 15:38
ik verzoek je dit eens te doen:
<?php
$handler = opendir("phpMyAdmin");
$XML = "";
while( $file = readdir( $handler ) )
{
if( $file != "." && $file != ".." )
{
$BOOM = explode(".", $file ) or die("BLAAT");
$XML .= "\n\t\t<link label=\"".$BOOM[0]."\" url=\"".$file."\" > ";
}
}
$Xml = "
<tree>\n\t<folder label=\"news\" >\n".$XML."\n\t</folder>\n</tree>
";
// de data deed het prima. maar het staat tussen <> dus de browser
// verbergt het :|
$handler = fopen("myFile.xml", "w+");
fwrite( $handler , $Xml );
echo "De xml is aangemaakt en toegevoegd.";
?>
ik krijg namelijk wel wat ;)
alleen bij scr dan :)
yrm
%Europe/Berlin %619 %2006, 15:52
nu doet hij het wel maar nu kan ik in principe in plaats van die echo $Xml
ook die $xml naar een .xml bestand schrijven toch?
josko
%Europe/Berlin %638 %2006, 16:18
ja, voeg het voor je toe als functie.
yrm
%Europe/Berlin %813 %2006, 20:31
// de data deed het prima. maar het staat tussen <> dus de browser
// verbergt het :|
kan je nagaan hoeveel ik er van snap;)
maaja heb dit scriptje nu wel aardig door.
hij dee het nog niet helemaal maar dat laatste heb ik zelf voor elkaar gekregen.
<?php
$handler = opendir("news");
$XML = "";
while( $file = readdir( $handler ) )
{
if( $file != "." && $file != ".." )
{
$BOOM = explode(".", $file ) or die("BLAAT");
$XML .= "\n\t\t<link label=\"".$BOOM[0]."\" url=\"".$file."\" > ";
}
}
$Xml = "
<tree>\n\t<folder label=\"news\" >\n".$XML."\n\t</folder>\n</tree>
";
// de data deed het prima. maar het staat tussen <> dus de browser
// verbergt het :|
$file = fopen("test.xml", "w+");
fwrite( $file, $Xml );
echo "De xml is aangemaakt en toegevoegd.";
?>
hij werkt nu dus hartstikke bedankt!
josko
%Europe/Berlin %815 %2006, 20:34
Je weet de knop ;)
-- ja dat was offtopic :) ---
ik zal me leven beteren. wanneer ik rep = 25 heb :p
en even [solved] in titel zettn.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.