PDA

Bekijk Volledige Versie : variabelen in xml?



Rob
21/03/08, 23:15
In een xml-bestand heb ik een aantal mp3-tjes benoemd bijv:

<player showDisplay="yes" showPlaylist="no" autoStart="yes">
<song path="mp3/item01.mp3" title="titel01" />
<song path="mp3/item02.mp3" title="titel02" />
</player>

Ik zou deze lijst echter graag dynamisch samenstellen, dus een soort
jukebox voor mijn bezoekers makem.

dus zoiets als:

<player showDisplay="yes" showPlaylist="no" autoStart="yes">
<song path="mp3/<?php echo $nummer01;?>" />
<song path="mp3/<?php echo $nummer02;?>" />
</player>

Mijn vraag is: hoe krijg ik php-variabelen werkend in een xml-bestand,
en als dat niet kan, hoe zou ik dat dan kunnen aanpakken?

gr.
Rob

Dietrich Moerman
22/03/08, 10:05
Rob schreef:
> In een xml-bestand heb ik een aantal mp3-tjes benoemd bijv:
>
> <player showDisplay="yes" showPlaylist="no" autoStart="yes">
> <song path="mp3/item01.mp3" title="titel01" />
> <song path="mp3/item02.mp3" title="titel02" />
> </player>
>
> Ik zou deze lijst echter graag dynamisch samenstellen, dus een soort
> jukebox voor mijn bezoekers makem.
>
> dus zoiets als:
>
> <player showDisplay="yes" showPlaylist="no" autoStart="yes">
> <song path="mp3/<?php echo $nummer01;?>" />
> <song path="mp3/<?php echo $nummer02;?>" />
> </player>
>
> Mijn vraag is: hoe krijg ik php-variabelen werkend in een xml-bestand,
> en als dat niet kan, hoe zou ik dat dan kunnen aanpakken?
>
> gr.
> Rob
>

Het "bestand" op de server moet een PHP-script zijn. Van hieruit
genereer je XML met alle logica die u maar wenst. Zorg er ook voor dat
het content-type juist wordt ingesteld, d.m.v. header('Content-type:
application/xml').

Kleine hint ook, het zal gemakkelijker zijn de bestanden in een array te
houden en hier over te lopen:

<player showDisplay="yes" showPlaylist="no" autoStart="yes">
<?php foreach ( $files as $file): ?>
<song path="mp3/<?php echo $file; ?>" />
<?php endforeach; ?>
</player>

--
Dietrich Moerman -- http://dmoerman.be

Erick T. Barkhuis
22/03/08, 10:15
Rob:

> Ik zou deze lijst echter graag dynamisch samenstellen, dus een soort
> jukebox voor mijn bezoekers makem.
>
> dus zoiets als:
>
> <player showDisplay="yes" showPlaylist="no" autoStart="yes">
> <song path="mp3/<?php echo $nummer01;?>" />
> <song path="mp3/<?php echo $nummer02;?>" />
> </player>
>
> Mijn vraag is: hoe krijg ik php-variabelen werkend in een xml-bestand,
> en als dat niet kan, hoe zou ik dat dan kunnen aanpakken?

Je kunt het XML-bestand dynamisch aanmaken vanuit een PHP-script.
Geschetst ziet dat er ongeveer zo uit:

$kopregel =
"<player showDisplay=\"yes\" showPlaylist=\"no\" autoStart=\"yes\">\n";
$eindregel = "</player>\n";
$songregel = "<song path=\"mp3/%s\" />\n";

echo $kopregel;
foreach ($jouwmuziekarray as $muzieknummer) {
$songregelGevuld = sprintf($songregel, $muzieknummer);
echo $songregelGevuld;
}
echo $eindregel;

Wellicht moet je iets aan http-headers toevoegen, afhankelijk van de
wijze van uitgifte aan de webbezoeker.



--
Erick

"Hmm, was er niet een probleem met sommige browsers in combinatie met
sommige andere webservers?" - Wimjan in niwo

Rob
22/03/08, 21:35
In article <MPG.224eeb6e8ce7dd0f9896ad@news.individual.net>, erick.use-
net@ardane.c-o-m says...
> Rob:
>
> > Ik zou deze lijst echter graag dynamisch samenstellen, dus een soort
> > jukebox voor mijn bezoekers makem.
> >
> > dus zoiets als:
> >
> > <player showDisplay="yes" showPlaylist="no" autoStart="yes">
> > <song path="mp3/<?php echo $nummer01;?>" />
> > <song path="mp3/<?php echo $nummer02;?>" />
> > </player>
> >
> > Mijn vraag is: hoe krijg ik php-variabelen werkend in een xml-bestand,
> > en als dat niet kan, hoe zou ik dat dan kunnen aanpakken?
>
> Je kunt het XML-bestand dynamisch aanmaken vanuit een PHP-script.
> Geschetst ziet dat er ongeveer zo uit:
>
> $kopregel =
> "<player showDisplay=\"yes\" showPlaylist=\"no\" autoStart=\"yes\">\n";
> $eindregel = "</player>\n";
> $songregel = "<song path=\"mp3/%s\" />\n";
>
> echo $kopregel;
> foreach ($jouwmuziekarray as $muzieknummer) {
> $songregelGevuld = sprintf($songregel, $muzieknummer);
> echo $songregelGevuld;
> }
> echo $eindregel;
>
> Wellicht moet je iets aan http-headers toevoegen, afhankelijk van de
> wijze van uitgifte aan de webbezoeker.

Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
bestand niet gemaakt) de php niet wordt herkend:

XML-parsefout: onjuist gevormd
<song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
--------------------^

Is er een truc, waarmee ik het door het swf-bestand aangeroepen xml-
bestand toch mbv PHP dynamisch kan aanmaken>

Rob

Branko Collin
22/03/08, 22:25
On Sat, 22 Mar 2008 21:25:56 +0100, Rob <nospam@plea.se> wrote:
>In article <MPG.224eeb6e8ce7dd0f9896ad@news.individual.net>, erick.use-
>net@ardane.c-o-m says...
>> Rob:
>
>Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
>Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
>bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
>bestand niet gemaakt) de php niet wordt herkend:
>
>XML-parsefout: onjuist gevormd
> <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
>--------------------^
>
>Is er een truc, waarmee ik het door het swf-bestand aangeroepen xml-
>bestand toch mbv PHP dynamisch kan aanmaken>

Je webserver moet uiteraard eerst het PHP-programma runnen, en
vervolgens de uitvoer daarvan naar je swf sturen. Als je webserver
..php-bestanden niet eerst door PHP laat uitvoeren, staat er ergens
iets fout ingesteld.


--
branko collin
"I'm a little man, and I am also evil, also into cats,
.... also into cats" - Fall Out Boy, This Ain't a Scene,
It's an Arms Race

Erick T. Barkhuis
22/03/08, 22:35
Rob:

> Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
> Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
> bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
> bestand niet gemaakt) de php niet wordt herkend:
>
> XML-parsefout: onjuist gevormd
> <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
> --------------------^
>

Jij probeert een XML-bestand wat PHP te laten uitvoeren. Probeer het
andersom: het PHP-bestand moet XML gaan uitspugen.

--
Erick

Rob
22/03/08, 22:45
In article <MPG.224f983d2b0cb9009896ae@news.individual.net>, erick.use-
net@ardane.c-o-m says...
> Rob:
>
> > Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
> > Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
> > bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
> > bestand niet gemaakt) de php niet wordt herkend:
> >
> > XML-parsefout: onjuist gevormd
> > <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
> > --------------------^
> >
>
> Jij probeert een XML-bestand wat PHP te laten uitvoeren. Probeer het
> andersom: het PHP-bestand moet XML gaan uitspugen.
>

Eh..ja. Ik ga het maar even in die richting zoeken.
Bedankt voor het meedenken.

Rob

Dietrich Moerman
23/03/08, 08:35
Rob schreef:
> In article <MPG.224f983d2b0cb9009896ae@news.individual.net>, erick.use-
> net@ardane.c-o-m says...
>> Rob:
>>
>>> Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
>>> Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
>>> bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
>>> bestand niet gemaakt) de php niet wordt herkend:
>>>
>>> XML-parsefout: onjuist gevormd
>>> <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
>>> --------------------^
>>>
>> Jij probeert een XML-bestand wat PHP te laten uitvoeren. Probeer het
>> andersom: het PHP-bestand moet XML gaan uitspugen.
>>
>
> Eh..ja. Ik ga het maar even in die richting zoeken.
> Bedankt voor het meedenken.
>
> Rob
>

Zoals ik ook al zei: het moet een PHP-script zijn. Dus zet die XML-code
met de nodige PHP in een .php-bestand (eventueel werk je met mod_rewrite
of ForceType op Apache als je toch .xml wil gebruiken), zorg dat het
juiste Content-Type wordt meegegeven (header()) en dat is het.

--
Dietrich Moerman -- http://dmoerman.be

Leihcim
23/03/08, 10:55
Rob wrote:
> In article <MPG.224eeb6e8ce7dd0f9896ad@news.individual.net>, erick.use-
> net@ardane.c-o-m says...
>
>>Rob:
>>
>>
>>>Ik zou deze lijst echter graag dynamisch samenstellen, dus een soort
>>>jukebox voor mijn bezoekers makem.
>>>
>>>dus zoiets als:
>>>
>>><player showDisplay="yes" showPlaylist="no" autoStart="yes">
>>> <song path="mp3/<?php echo $nummer01;?>" />
>>> <song path="mp3/<?php echo $nummer02;?>" />
>>></player>
>>>
>>>Mijn vraag is: hoe krijg ik php-variabelen werkend in een xml-bestand,
>>>en als dat niet kan, hoe zou ik dat dan kunnen aanpakken?
>>
>>Je kunt het XML-bestand dynamisch aanmaken vanuit een PHP-script.
>>Geschetst ziet dat er ongeveer zo uit:
>>
>>$kopregel =
>> "<player showDisplay=\"yes\" showPlaylist=\"no\" autoStart=\"yes\">\n";
>>$eindregel = "</player>\n";
>>$songregel = "<song path=\"mp3/%s\" />\n";
>>
>>echo $kopregel;
>>foreach ($jouwmuziekarray as $muzieknummer) {
>> $songregelGevuld = sprintf($songregel, $muzieknummer);
>> echo $songregelGevuld;
>>}
>>echo $eindregel;
>>
>>Wellicht moet je iets aan http-headers toevoegen, afhankelijk van de
>>wijze van uitgifte aan de webbezoeker.
>
>
> Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
> Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
> bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
> bestand niet gemaakt) de php niet wordt herkend:
>
> XML-parsefout: onjuist gevormd
> <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
> --------------------^
>
> Is er een truc, waarmee ik het door het swf-bestand aangeroepen xml-
> bestand toch mbv PHP dynamisch kan aanmaken>

Het bestand eindigt waarschijnlijk op .xml ? In dat geval moet je de
webserver nog wijsmaken dat hij xml bestanden ook als php moet parsen. Dit
kan b.v. via de .htaccess op een dergelijke wijze:

AddType application/x-httpd-php .xml

Op de meeste webservers werkt dit wel.
Of via mod_rewrite de .xml request naar een .php bestand omleiden.

Rob
24/03/08, 14:15
In article <MPG.224f983d2b0cb9009896ae@news.individual.net>, erick.use-
net@ardane.c-o-m says...
> Rob:
>
> > Het dynamisch aanmaken m.b.v. PHP is niet zozeer het probleem.
> > Probleem is dat als het xml-bestand wordt aangeroepen vanuit een swf-
> > bestand (een aanroep waar ik verder geen invloed op heb, ik heb het swf-
> > bestand niet gemaakt) de php niet wordt herkend:
> >
> > XML-parsefout: onjuist gevormd
> > <song path="mp3/<?php echo $nummer01;?>" title="nummer01" />
> > --------------------^
> >
>
> Jij probeert een XML-bestand wat PHP te laten uitvoeren. Probeer het
> andersom: het PHP-bestand moet XML gaan uitspugen.


Ok, inmiddels hel wat uurtjes zwoegen verder.....

Dmv een formulier (vanuit een mySQL-database gevuld met nummers) kan een
bezoeker dmv het aanvinken van checkboxes een aantal nummers kiezen. Met
behulp van php kan ik vervolgens iets tevoorschijn toveren wat er heel
erg xml-erig uitziet, zoiets als:

<?xml version="1.0" encoding="UTF-8"?>
<player showDisplay="yes" showPlaylist="no" autoStart="yes">
<song path="../mp3/nummer001.mp3" title="titel01" />
<song path="../mp3/nummer002.mp3" title="titel02" />
<song path="../mp3/nummer003.mp3" title="titel03" />
<song path="../mp3/nummer004.mp3" title="titel04" />
</player>

Bovenstaande is geschreven naar het bestand mp3player.php

Maar mijn mp3player.swf zoekt naar een .xml-bestand
Via een mod_rewrite in mijn htaccess-file heb ik geprobeerd de xml-file
naar de php-file te leiden:

RewriteRule mp3player.xml mp3player.php

Dit heeft geen effect, de originele xml-file wordt gebruikt, niet de
dynamisch gegenereerde php-file.

Doe ik iets fout?

gr.
Rob