• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Verlinkung in einer Variablen speichern

alexander912

Neues Mitglied
Einen schönen Sonntag,
folgendes Problem stellt sich mir:
Zur Zeit habe ich in mehreren Variablen Songnamen gespeichert,
PHP:
$song_eins = "ohne Namen 1";
so damit ich nicht jedesmal den Songnamen neu auf der Seite schreiben muss, sondern nur die Variable.
Jeder Songname ist dann auch direkt auf die MP3-Datei verlinkt.
HTML:
<a href="song2_probe27maerz.mp3"><?php echo $song_zwei ?></a>
Ist es möglich, die Verlinkung,
HTML:
<a href="song2_probe27maerz.mp3"></a>
mit in die Variable zu speichern?
Einfach den ganzen Code übergeben funktioniert zumindest schonmal nicht.
Danke für eure Hilfe !
Gruß Alex

PS: Bin noch ziemlicher PHP Anfänger. Weiß aber mit dem Großeteil der Syntax was anzufangen.
 
Zuletzt bearbeitet:
Werbung:
Ich weiss jetzt nicht ob ich dich ganz richtig verstanden habe, aber du möchtest sozusagen Titel und Datei irgendwie in eine Variable bekommen oder?

Das könntest du evtl. mit einem Array machen, bei dem du den Titel als Index setzt und die Datei als Wert...
Also zB etwa so:
PHP:
$titelliste = array("Titel_Eins" => "Datei_Eins.mp3", "Titel_Zwei" => "Datei_Zwei.mp3");

foreach($titelliste as $titel => $datei){
    echo "<a href=\"$datei\">$titel</a>";
}

Oder habe ich dich da falsch verstanden?

Also dieser Code weisst dem Array $titelliste mehrere Titel und zugehörig den Dateinamen zu. Später wird die Liste mit foreach durchlaufen und jeder Wert an seinem entsprechenden Ort ausgegeben. Somit hättest du alle deine Songs in einer Variable...
 
anderer lösungsweg...
ich würd etwas subtiler an die sache rangehen.
schreib das song-session-watermark direkt mit dem songnamen in die variable (immer im gleichen format) und subtrahiere die überflüssigen zeichen für die textausgabe des links.

Code:
<?php
$song_eins = "s01p02mrz07No Name Band - Song With No Name";
echo '<a href="'.$song_eins.'.mp3">'.substr($song_eins,11).'</a>';
?>

TESTSEITE: so sieht das ganze dann aus

EDIT:
funktioniert natürlich auch im array mit foreach.
lohnt sich bei vielen dateien, um das echo auf nur eines zu reduzieren:
Code:
<?php
$songs = array(
 "s01p02mrz07No Name Band - Song With No Name Part1",
 "s02p03apr14No Name Band - Song With No Name Part2",);
foreach($songs as $list){
 echo '<a href="'.$list.'.mp3">'.substr($list,11).'</a><br>';
 }
?>

TESTSEITE2: sieht dann so aus

EDIT2:
wenn du den songtitel oder das watermark nicht mit im namen der downloadbaren datei stehen haben willst bieten sich noch ne menge möglichkeiten.
du musst dann nur ein wenig mit substr() rumspielen.
das oben ist nur ein beispiel
 
Zuletzt bearbeitet:
Werbung:
Hallo hier beiden,
danke für eure schnellen Antworten.
Das was Space Vampire ist wohl am ehesten das was ich meinte, werd aber auch das mal mit dem Array ausprobieren, denn Array sind ja nun auch recht vorteilhaft, da es ja mit laufe der Zeit mehr songs werden.

Nochmals vielen Dank.
Alexander
 
Und die "Standardlösung" sähe so aus:

PHP:
<?php

$mp3Data = array(
    array(
        'title'    => 'Titel eins',
        'filename' => 'Datei_eins.mp3'
    ),
    array(
        'title'    => 'Titel zwei',
        'filename' => 'Datei_zwei.mp3'
    ),
    array(
        'title'    => 'Titel drei',
        'filename' => 'Datei_drei.mp3'
    ),
    array(
        'title'    => 'Titel vier',
        'filename' => 'Datei_vier.mp3'
    )
);

foreach ($mp3Data as $entry) {
    echo '<p><a href="' . $entry['filename'] . '">' . $entry['title'] . '</a></p>';
}

Space Vampires Lösung finde ich etwas unlogisch (auch wenn sie funktioniert ;)). Warum zwei unterschiedliche Informationen als String in eine Variable schreiben? Damit führst du ein neues Mikroformat ein, das dokumentiert werden muss, weil nicht auf Anhieb ersichtlich sein dürfte, was ein substr($s, 11) bedeuten soll. (Es lässt zudem nur Dateinamen zu, die genau 11 Zeichen lang sind.) Auch ist es nur umständlich um weitere Felder (etwa für Bitrate oder Interpret oder was auch immer) erweiterbar.
 
Werbung:
mit der zeichenbegrenzung gebe ich dir recht, aber ich habe mich bewusst für diese "alternativlösung" entschieden, weil es in diesem fall um eineinformation handelt, die man prima IMMER auf die selbe zeichenlänge reduzieren kann.
ich stelle alexanders lösung auch nicht infrage, sondern wollte nur eine alternative anbieten, die dem in diesem fall gegebenen zweck entspricht ;)
 
Zurück
Oben