Playlisten Anhand des Dateinamen sortieren

Status
Für weitere Antworten geschlossen.

Dani Düsentrieb

Benutzer
Mitglied seit
03. Jan 2008
Beiträge
216
Punkte für Reaktionen
3
Punkte
18
Hi Leute

für alle die Ihre Playliste nach dem Dateinamen sortiert haben wollen habe ich ein kleines PHP Script gebastelt. Ich habe meine Dateinamen wie folgt auf gebaut:

01 - Double V Moscow Morning.mp3
02 - ... usw.

Nun hat mir der Playlisteditor der DS 207+ die Dateien ungeordnet in die m3u-Liste geschrieben. Dieses Script ordnet die Dateien wieder, vorrausgesetzt Eure Dateinamen lauten auch so. Einfach auf Durchsuchen gehen und ins Verzeichnis music/playlists wechseln. Da ne m3u auswählen und auf Sortieren klicken. Die PHP Datei an sich muss ich web Verzeichnis.

PHP:
<?php
if(isset($send)){
	header("Content-Type: application/text");
	header("Content-Disposition: attachment; filename=\"$filetext\"");
	$zeilen = file("$filename");
	$newlines = array();
	foreach($zeilen as $zeilen_nr => $inhalt){
		$tracknr = substr($inhalt,strrpos ($inhalt,"/")+1 ,3);
		$tracknr = intval($tracknr);
		if($tracknr != 0){
			$newlines[$tracknr] = $inhalt;
		}else{
			$newlines[$zeilen_nr] = $inhalt;
		}
	}
	sort ($newlines);
	foreach($newlines as $line){
		echo $line;
	}
}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<script type="text/javascript">
function showname () {
  var filestring = document.getElementById("filename").value;
	document.getElementById("filetext").value = filestring;
}
</script>
</head>

<body>
m3u Playliste der DS 207+ Anhand der Dateinamen sortieren!<br />
Der Dateiname sollte wie folgt aufgebaut sein: Track Nr. - Artist.mp3 (08 - Karel Gott Verdammt ich lieb dich.mp3)<br /><br />
<form action="index.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
	Playlist <input type="file" name="filename" id="filename" onchange="showname();" />
  <br />
  <br />
  <input type="submit" name="send" id="send" value="Sortieren" />
	<input type="hidden" name="filetext" id="filetext" />
</form>
</body>
</html>
<?php
}
?>
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Nur so ein Tipp am Rande: Dein Script ist darauf angewiesen, dass in der php.ini die register globals auf ON sind. Dies stellt jedoch u.U. ein Sicherheitsrisiko dar
Also besser
PHP:
$_POST['send'];
$_POST['filename'];
verwenden.
Und hier würde ich anstelle eine Schleife
PHP:
foreach($newlines as $line){ 
 echo $line; 
}
einfach folgendes verwenden
PHP:
echo implode("\r\n",$newlines);
Bei dieser Version solltest du dann aber sicherstellen, dass $inhalt nicht mit Zeilenendzeichen ins Array geschrieben wird. Also noch ein
PHP:
newlines[$tracknr] = trim($inhalt);
drüberlassen
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat