29. september 2006 - 23:08
Der er
27 kommentarer og 1 løsning
PHP oversættelse af mappeindhold til XML
Hej, Jeg er på udkig efter et PHP-script der kan kikke i en mappe på en server (relativt eller absolut) og returnere mappens indhold som XML. Eksempel: visMappeIndholdSomXml.php kikker på "mappe" (der f.eks. indeholder to filer) , og returnerer. <?xml version="1.0" ?> <filer> <sang="sang1" url="sang1.mp3" /> <sang="sang2" url="sang2.mp3" /> </filer>
Annonceindlæg fra Jysk IT
Sikkerhed skal være en del af driften
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
29. september 2006 - 23:45
#1
Du kan hente filerne med: $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { //nu har du filens navn i $file } } ...så er resten jo bare et spørgsmål om udskrivning/formatering.
30. september 2006 - 00:10
#2
Jeg er desværre ikke stærk nok i PHP til "bare"-delen af det (og "sang"-delen af det skal være strengen "sang" + et tal der tæller opad...
30. september 2006 - 00:22
#3
Okey. Jeg ved så ikke skide meget om xml, men kan da forsøge: echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="sang'.$i.'.mp3" />'; } } echo '</filer'>'; Som sagt utestet og uden garanti, men prøv det :)
30. september 2006 - 00:23
#4
Woops, her: echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="sang'.$i.'.mp3" />'; $i++; } } echo '</filer'>';
30. september 2006 - 00:24
#5
Okey, nu er jeg vist et fjols. 3. gang er lykkens gang? echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } } echo '</filer'>'; Beklager !
30. september 2006 - 00:29
#6
Altså: Der er 'mappe'. Ved siden af den ligger visMappeIndholdSomXml.php, som er <?php echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } } echo '</filer'>'; ?>
30. september 2006 - 00:29
#7
For det returnerer ikke noget hos mig...
30. september 2006 - 00:31
#8
echo '</filer'>'; <- Du har et ' for meget her. (Eller jeg havde, i hvert fald skal det væk): echo '</filer>';
30. september 2006 - 00:39
#9
Ked af det, men det giver ikke noget. Ligenu ligger der en .txt-fil og en .jpg-fil i "mappe", til at teste på. <?php echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } } echo '</filer>'; ?>
30. september 2006 - 00:42
#10
Ja. Altså du har din php-fil liggende, og i en undermappe ligger de 2 filer? Hvad sker der ikke? Har du tjekket din browsers kilde-kode? XML er jo sådan set ikke noget der skal skrives ud af browseren...
30. september 2006 - 00:46
#11
30. september 2006 - 00:46
#12
30. september 2006 - 00:49
#13
Jo, jo, det bliver mit nu også. Har du et link til dér, hvor du har den liggende? Det undrer mig nemlig lidt, for her virker den fint...
30. september 2006 - 00:57
#15
<sang> bliver ikke lukket med </sang>, må det være.
30. september 2006 - 00:57
#16
Det virker fint - Dit script skal bare se sådan ud: <?php header('Content-Type: text/xml'); echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } } echo '</filer>'; ?>
30. september 2006 - 00:57
#17
(Altså content-type skal sættes, så fanger browseren det og viser XML)
30. september 2006 - 00:58
#18
Prøver med: <?php echo '<?xml version="1.0" ?>'; echo '<filer>'; $i = 1; $handle = opendir("./mappe/"); while(false !== ($file = @readdir($handle))) { if(is_file("./mappe/".$file)) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } } echo '</sang></filer>'; ?>
30. september 2006 - 00:58
#19
Det var jeg så ikke klar over...
30. september 2006 - 00:59
#20
Her er et utestet alternativ: <?php header('Content-Type: text/xml'); echo "<?xml version="1.0" ?>\n<filer>\n"; $i = 1; $files = glob( 'mappe/*' ); foreach ( $files as $file ) { echo '<sang="sang'.$i.'" url="'.$file.'" />'; $i++; } echo '</filer>'; ?>
30. september 2006 - 01:02
#21
Doh: echo "<?xml version="1.0" ?>\n<filer>\n"; skal naturligvis være: echo "<?xml version=\"1.0\" ?>\n<filer>\n"; :)
30. september 2006 - 01:04
#22
Normalt er jeg ikke tilhænger af at skrive tingene kort, men: <?php header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" ?>\n<filer>\n"; $i = 1; foreach ( glob( 'mappe/*' ) as $file ) echo '<sang="sang'.$i++.'" url="'.$file.'" />'; echo '</filer>'; ?> :)
30. september 2006 - 01:08
#23
Super, og tak! Det er MEGET lang tid jeg har været herinde og er lidt i tvivl om hvem der skal have pts, det må vel være dig coderdk?
30. september 2006 - 01:22
#24
Du bestemmer jo hvem der skal have point, men nu tog du dem i hvert fald selv :)
30. september 2006 - 01:31
#25
Nej, jeg synes jaw skal have pointene, da hans svar var helt brugbart (manglede bare en header)! :) Men som jaw skrev, så napsede du dem lige selv ;)
30. september 2006 - 09:31
#26
Det var altså en fejl! Kan jeg gøre det om? Lave et nyt spørgsmål? Sorry! Det er halvandet år siden jeg sidst har været herinde tror jeg.
30. september 2006 - 11:17
#27
hmm, fik du ikke et brugbart svar af jaw?, så syntes jeg han skulle have de points, det er ikke mere end fair for ham...
30. september 2006 - 12:19
#28
Du kan ikke gøre det om, men du kan altid oprette et nyt spørgsmål, der hedder point til xxx med henvisning til det her :)
Vi tilbyder markedets bedste kurser inden for webudvikling