Laatste komma in while loop niet tonen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peps from Yesterday

Peps from Yesterday

26/05/2010 16:03:45
Quote Anchor link
Hoi!

ik ben bezig een muziek speler alle audio bestanden uit een map af te laten spelen in een playlist voor de site van een band. het werkt allemaal goed alleen kan de playlist nu niet op herhalen omdat hij denkt dat er na het laatste nummer nog een nummer komt. dit omdat er na elk nummer een - , - wordt gegenereerd om de nummers te scheiden.

zie 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
<?php
if ($handle = opendir('../audio/')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo htmlentities("../audio/");
            echo "$file";
            echo htmlentities(", ");
        }
    }

    closedir($handle);
}

?>


de vraag is dus:
hoe kan ik ervoor zorgen dat er na het laatste nummer wat in de map staat geen comma verschijnt?

alvast bedankt!
Gewijzigd op 26/05/2010 16:08:37 door B a s
 
PHP hulp

PHP hulp

27/04/2024 00:20:01
 
B a s
Beheerder

B a s

26/05/2010 16:06:15
Quote Anchor link
Dit had je zelf denk ik ook wel kunnen verzinnen maar op deze manier wellicht?

De eerste kun je met een nummer detecteren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (empty($i))
{

  $i = 1;
  echo $file;
}

else
{
  echo ',' . $file;
}

?>


Verder is de functie htmlentities niet nodig voor een komma.
Gewijzigd op 26/05/2010 16:08:03 door B a s
 
Joren de Wit

Joren de Wit

26/05/2010 16:08:49
Quote Anchor link
In dat geval krijg je een komma voor de filename, dat lijkt me ook niet de bedoeling. Het makkelijkst is wellicht door de string niet meteen te echoën, maar eerst in een variabele te zetten. Vervolgen kun je na de loop de laatste komma uit die variabele halen en dan pas de string echoën...
 
Chris -

Chris -

26/05/2010 16:12:19
Quote Anchor link
Twee dingen, kun je niet beter implode gebruiken, en kun je niet beter glob gebruiken?
 
Peps from Yesterday

Peps from Yesterday

26/05/2010 16:14:24
Quote Anchor link
@ bas, zoveel weet ik nog niet van php, ik was al blij dat dit gelukt was! maar ik zal idd die 2de htmlentities weghalen!

@ Blanche, hoe moet ik dat doen?
 
Chris -

Chris -

26/05/2010 16:19:16
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php //kleurtjes

$audio = glob('../audio/*.mp3');
echo implode(', ', $audio);
?>


Kun je hier niet iets mee?
 
Steff   an

Steff an

26/05/2010 16:21:41
Quote Anchor link
En nu de rest van de audio-formaten nog :P
 
Peps from Yesterday

Peps from Yesterday

26/05/2010 16:23:03
Quote Anchor link
haha, ja, dank Chris! 2 regels, perfect!

ja, dat is waar. test het idd alleen met .mp3 hier.

stel ze voegen wma oid toe?

Binnen de 24 uur geen nieuwe post plaatsen, graag uw huidige post wijzigen (niet bumpen).[/modedit]
Gewijzigd op 07/06/2010 19:40:45 door Tom Beuckelaere
 
Chris -

Chris -

26/05/2010 16:24:27
Quote Anchor link
Je moet inderdaad wel rekening mee houden dat je ook nog andere extensies hebt. Je kan eventueel ook nog alleen '*' gebruiken =)

Modbreak:
Peps, twee berichten achter elkaar plaatsen wordt bumpen genoemd. Zou je in het vervolg je bericht willen bewerken? Dat kan door op het icoontje Afbeelding te klikken. Bedankt!
Gewijzigd op 26/05/2010 16:37:16 door Chris -
 
Peps from Yesterday

Peps from Yesterday

26/05/2010 16:32:41
Quote Anchor link
top! hartelijk bedankt!
 
Chris -

Chris -

26/05/2010 16:38:11
Quote Anchor link
Geen dank =)
 
Peps from Yesterday

Peps from Yesterday

07/06/2010 11:19:13
Quote Anchor link
is het ook mogelijk om de audiobestanden steeds op een willekeurige volgorde te loaden met behulp van de onderstaande code?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php //kleurtjes

$audio = glob('../audio/*.mp3');
echo implode(', ', $audio);
?>


alvast bedankt!
 
Chris -

Chris -

07/06/2010 11:21:12
Quote Anchor link
Jup, gebruik shuffle! (als je goed naar glob heb gekeken, zul je weten wat je moet doen. Als je het niet weet, kunnen we je alsnog het concrete antwoord geven ;-) Plaats hier zoiezo even wat je hebt gemaakt!)
 
Peps from Yesterday

Peps from Yesterday

07/06/2010 11:34:04
Quote Anchor link
top, ik ga 't onderzoeken!
 
Peps from Yesterday

Peps from Yesterday

07/06/2010 11:46:40
Quote Anchor link
is dit hoe het zou moeten?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php $audios = glob('../audio/*.mp3');
shuffle($audios);
foreach ($audios as $audio) {
echo implode(', ', $audio);
}
?>
 
Joren de Wit

Joren de Wit

07/06/2010 11:48:37
Quote Anchor link
Geeft het het resultaat dat je wilt? Ik denk het niet, gebruik ofwel foreach ofwel implode, maar niet allebei. De variabele $audio is immers geen array meer, $audios is dat wel...
 
Peps from Yesterday

Peps from Yesterday

07/06/2010 11:54:21
Quote Anchor link
bedankt! zo werkt het!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php $audio = glob('../audio/*.mp3'); shuffle($audio);
echo implode(', ', $audio); ?>


de vorige code werkte idd niet, maar gaf ook geen foutmelding, dacht dat de code misschien goed zou zijn, en dat het wellicht aan iets anders had kunnen liggen.
 
Chris -

Chris -

07/06/2010 12:55:29
Quote Anchor link
Komt omdat implode (en shuffle) een array verwachtte, en jij een string gaf ;-)
 



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.