Mit PHP eine m3u Playliste erstellen

Thomas_Jung

Erfahrenes Mitglied
Hallo

Ich möchte mit PHP eine m3u playliste erstellen.

PHP:
$datei = fopen("playliste.txt","w+");

      
while($row = mysql_fetch_object($result)) { 
fwrite ($datei, '#EXTM3U
#EXTINF:'.$row->id.','.$row->artist.' - '.$row->titel.'
'.$row->mp3_path.'\n');

} 

fclose($datei);

Das Problen ist das \n es darf nich in der Datei angezeigt werden.

Gibt es eine Möglichkeit dafür?

Gruß Thomas
 
Hab zwar keine Ahnung von m3u- aber, warum entfernst du das \n nicht?

Ansonsten. \n wird nur als Zeilenumbruch gewertet wenn es zwischen doppelten Anführungszeichen steht. In einfachen Anführungszeichen ist es nur ein Text.
Es lohnt sich hier mit der heredoc-Syntax zu arbeiten

PHP:
while($row = mysql_fetch_object($result)) { 
    $item = <<<ITEM
#EXTM3U
#EXTINF:{$row->id},{$row->artist} - {$row->titel}
{$row->mp3_path}

ITEM;

    fwrite ($datei, $item);
}
 
Hallo Yaslaw

Ich habe mich leider zu früh gefreut.

Die heredoc-Syntax hat ist zwar besser aber ich benötige einen Zeilenumbruch,
da der Windows Mediaplayer sonst einen Fehler anzeigt.

Die Datei wir so erstellt

#EXTM3U
#EXTINF:2,Paul Young -
musik/12 Inch Versions 80s/01 Come Back And Stay.mp3#EXTM3U
#EXTINF:3,The Trammps -
musik/12 Inch Versions 80s/01 Disco Inferno.mp3#EXTM3U
#EXTINF:25,Gloria Gaynor -
musik/12 Inch Versions 80s/02 Never Can Say Goodbye.mp3


Ich benötige aber die Datei so

#EXTM3U
#EXTINF:2,Paul Young -
musik/12 Inch Versions 80s/01 Come Back And Stay.mp3
#EXTM3U
#EXTINF:3,The Trammps -
musik/12 Inch Versions 80s/01 Disco Inferno.mp3
#EXTM3U
#EXTINF:25,Gloria Gaynor -
musik/12 Inch Versions 80s/02 Never Can Say Goodbye.mp3

Kannst du oder ein anderer mir dabei helfen?

Gruß Thomas
 
item: Hast du die Leerzeile im Code genauso wie ich sie habe? Also nach {$row->mp3_path} noch eine Leerzeile und erst dann ITEM;

item: Die Variante mit doppelten Anführungszeichen schon probiert?
Ansonsten. \n wird nur als Zeilenumbruch gewertet wenn es zwischen doppelten Anführungszeichen steht. In einfachen Anführungszeichen ist es nur ein Text.
'\n' ist nicht gleich "\n"
 
Hallo Yaslaw

Derzeitiger Code

PHP:
$query = $_SESSION['search_query'] or die (mysql_error());
//echo  "Playliste erstellen: ".$query ."<br>";
$result =  mysql_query($query);
if (mysql_errno()) die ("MySQL-Fehler: " . mysql_error());
$datei = fopen("playliste.m3u","w+");
while($row = mysql_fetch_object($result)) { 
$mp3_path =  $row->mp3_path.' ';
$item = <<<ITEM
#EXTM3U
#EXTINF:{$row->id},{$row->artist} - {$row->titel}
{$mp3_path}
ITEM;
fwrite ($datei, $item);
}  
fclose($datei);


Mit Leerzeichen sieht es so aus.

#EXTM3U
#EXTINF:64,Talk Talk -
musik/12 Inch Versions 80s/05 - Talk Talk - It's My Life (Extended Mix).mp3 #EXTM3U
#EXTINF:65,unknow -
musik/12 Inch Versions 80s/05 All Tomorrow's Parties (1983 Remix).mp3 #EXTM3U
#EXTINF:66,unknow -


Mit "\n" sieht es so aus.

Siehe Bild 1
1.jpg


Mit '\n' sieht es so aus.

Siehe Bild 2
2.jpg

Gruß Thomas
 
Finde die Unterscheide was Zeilenumbrüche angeht.
PHP:
//Dein Code: http://www.tutorials.de/php/383771-mit-php-eine-m3u-playliste-erstellen.html#post1984958
$item = <<<ITEM
#EXTM3U
#EXTINF:{$row->id},{$row->artist} - {$row->titel}
{$mp3_path}
ITEM; 

//Mein Code: http://www.tutorials.de/php/383771-mit-php-eine-m3u-playliste-erstellen.html#post1984788
$item = <<<ITEM
#EXTM3U
#EXTINF:{$row->id},{$row->artist} - {$row->titel}
{$row->mp3_path}

ITEM;

genau. vor ITEM; habe ich eine Leerziele drin

Und das "\n" nicht als Zeilenumbruch akzeptiert wird? Auf was für einem System arbeitest du?
 
Hallo Yaslaw

Hi habe zwichen dem {$row->mp3_path} und dem ITEM; keine Leerzeile gehabt.

Habe Leerzeile mit Leerzeichen verwechselt. :(:(:(:(

Muß mal Pause machen.

Jetzt geht es natürlich.

Vielen Dank für deine Zeit und Hilfe.

Gruß Thomas
 
Zurück