Übergabe Dateinummer der Audio im Link/Text an Arrey oder Variable für Wiedergabe der Audiodatei

$ausgabe ist ein Array. Und was packst du in das Array?

$ausgabe[] = array("....");
 
Ahhhh, ok. Wenn ich auf PHP.de lese, ist mir aufgefallen, dass die Beispiele nicht immer ganz eindeutig sind. Ein Beispiel verwendete $codes einmal als array und ein andermal - im selbigen code -als string. Macht es nicht ganz einfach, durchzusehen. Danke. der Info.

Inhalt von inh.txt im Beitrag davor gepostet....
 
Ich würde da ja gleich Nägel mit Köpfen machen und auf eine zeitgemäßere Lösung setzen, entweder mit einem Modal, wie Du ein deinem Eingangsposting geschrieben hattest oder mit einer Playlist, was eine gängige Lösung ist. Mit Modal würde eine Basisversion so aussehen:
Code:
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
include '_thread-tenses/connect.php';
?>
<!doctype html>
<html>

<head>
    <title>Audio Playlist</title>
    <style>
        figure {
            display:none;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            margin: 0;
        }

        audio {
            outline: none;
        }
    </style>
</head>

<body>
<?php
$files = glob('audio/*.mp3');
foreach ($files as $file) {
    $name = basename($file, '.mp3');
    echo '<button value="' . $file . '">' . $name . '</button>';
}
?>
<figure>
    <audio controls></audio>
    <figcaption></figcaption>
    <span class="close-btn">Schließen</span>
</figure>
    <script>
        const fig = document.querySelector('figure');
        const aud = document.querySelector('figure audio');
        const figcapt = document.querySelector('figure figcaption');
        document.body.addEventListener('click', event => {
            if (event.target.classList.contains('close-btn')) {
                fig.style.display = 'none';
                aud.pause();
            } else {
                const src = event.target.value,
                    name = event.target.textContent;
                aud.src = src;
                aud.play();
                figcapt.textContent = name;
                fig.style.display = 'inline-block';
            }
        });
    </script>
</body>

</html>
Mit Playlist fast gleich, nur dass der Player immer sichtbar wäre und darunter die Liste der Audiodateien, scrollbar wenn es relativ viele sind wie in deinem Fall.
 
Zuletzt bearbeitet:
Ich würde da ja gleich Nägel mit Köpfen machen und gleich auf eine zeitgemäßere Lösung setzen, entweder mit einem Modal, wie Du ein deinem Eingangsposting geschrieben hattest oder mit einer Playlist, was eine gängige Lösung ist. Mit Modal würde eine Basisversion so aussehen:
Code:
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
include '_thread-tenses/connect.php';
?>
<!doctype html>
<html>

<head>
    <title>Audio Playlist</title>
    <style>
        figure {
            display:none;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            margin: 0;
        }

        audio {
            outline: none;
        }
    </style>
</head>

<body>
<?php
$files = glob('audio/*.mp3');
foreach ($files as $file) {
    $name = basename($file, '.mp3');
    echo '<button value="' . $file . '">' . $name . '</button>';
}
?>
<figure>
    <audio controls></audio>
    <figcaption></figcaption>
    <span class="close-btn">Schließen</span>
</figure>
    <script>
        const fig = document.querySelector('figure');
        const aud = document.querySelector('figure audio');
        const figcapt = document.querySelector('figure figcaption');
        document.body.addEventListener('click', event => {
            if (event.target.classList.contains('close-btn')) {
                fig.style.display = 'none';
                aud.pause();
            } else {
                const src = event.target.value,
                    name = event.target.textContent;
                aud.src = src;
                aud.play();
                figcapt.textContent = name;
                fig.style.display = 'inline-block';
            }
        });
    </script>
</body>

</html>
Mit Playlist fast gleich, nur dass der Player immer sichtbar wäre und darunter die Liste der Audiodateien, scrollbar wenn es relativ viele sind wie in deinem Fall.
Danke, ich sehe mir diesen Code mal in Funktion an.... Playlist steht in der Ausgangsbeschreibung, warum es nicht geht. Die Suchfunktion der Seite, die Datum, einzelne Wörter des Titels, Kassettennummer Wochentag, Ort und später auch Stichwörter durchsucht, wäre nicht wirklich hilfreich, was zu finden. Zudem soll das ganze nicht mehr Webadministrator-Abhängig sein. Danke des Postes.
 
Playlist steht in der Ausgangsbeschreibung, warum es nicht geht.
Du meinst, dass die Audiodateien keine Metadaten haben? Eine Playlist i. w. S. würde die auch nicht brauchen, was Du dir vorstellst, dass man eine Liste mit den Namen bzw. Nummern sieht, könnte man auch als Playlist interpretieren.
 
Du meinst, dass die Audiodateien keine Metadaten haben? Eine Playlist i. w. S. würde die auch nicht brauchen, was Du dir vorstellst, dass man eine Liste mit den Namen bzw. Nummern sieht, könnte man auch als Playlist interpretieren.
Ja, stimmt. Ich habe derweilen 480 Audiodateien da - und einiges an unbearbeitetes. Die müsste ich alle durcharbeiten, wenn ich sie mit Meta vergeben sollte. Und auch wenn ich Titeln vergeben täte, ist mir dies zu umständlich, da ich eh schon ein Inhaltsverzeichnis habe - siehe Post 10 . Daher versuche ich diese Möglichkeit und interpretiere das Inhaltsverzeichnis als Playlist. Danke.

Habe das Modalskrip angesehen und versuche es mal zu integrieren. Danke.
 
Noch eine Anmerkung zu dem Inhaltsverzeichnis. Du schreibst:
Wass ich aber noch möchte ist, dass 1. Wenn im Audio-Verzeichnis eine Datei da ist, die nicht im Inhaltsverzeichnis ist, dass eine Datei erstellt wird, in dieser die Nummer der mp3 notiert wird. Damit weiss der Admin, dass man hier eine Datei hat, die zu ergänzen ist. Ebenso 2. wenn im Inhaltsverzeichnis einen Eintrag steht, der NICHT im Audioverzeichnis ist.
So etwas würde ich offline machen, d. h. ein getrenntes PHP-Skript als Werkzeug für den Admin, das beides, Inhaltsverzeichnis und Ordnerinhalt, vergleicht und die Differenzen anzeigt. Dann brauchst Du nicht den Umweg mit dem Anlegen einer Datei zu gehen.
 
Noch eine Anmerkung zu dem Inhaltsverzeichnis. Du schreibst:

So etwas würde ich offline machen, d. h. ein getrenntes PHP-Skript als Werkzeug für den Admin, das beides, Inhaltsverzeichnis und Ordnerinhalt, vergleicht und die Differenzen anzeigt. Dann brauchst Du nicht den Umweg mit dem Anlegen einer Datei zu gehen.
Super idee. Danke euch allen.
 
Hi,
Also wenn Du im Array HTML Code drinnen hast würde ich mir Gedanken machen ob du nicht was falsch gemacht hast.
Im Blick auf Layout und Logik zu trennen sollte sowas nicht passieren.
Auch gibts bei mir kein Echo mehr für html.
Da wird das php parsen beendet und nach dem html wieder gestartet.

Grüße
 
Hallo Zusammen. Ich musste mich an einem anderne Projekt widmen, welches dringender war und nichts mit Web zu tun hat. Dies ist ja nur ein Hobby von mir.

Zum Problem:
PHP:
.....
$ausgabe = array();   
.....
if (!empty($audio) && !empty($inhverz)) {

            foreach ($inhverz as $gueltig) {
                
                $zeichen = substr($gueltig,0 ,1); // erster Buchstabe heruaarbeiten
                
                foreach ($audionew as $wert) {
                    
                    if ( $zeichen === "B"){
                        
                        
                            $ausgabe = array($zeichen => $gueltig);       

                    }
                }
        
            }   
            
        print_r($ausgabe);
        
    }     else {
        echo "Die Audiodateien oder das Inhaltsverzeichnis scheinen nicht vorhanden zu sein!";
    }
var_dump ($ausgabe);

Ich verstehe nicht, warum das Array $ausgabe immer nur einen Wert enthält, und zwar den letzten der liste.

Ausgabe:

HTML:
Array ( [B] => Bund Gottes mit uns Menschen -- Nr. 453_01 - Mittwoch 12.06.2002 - Ort: Purbach)

Das Array scheint überschrieben zu werden. Kann ich dies nicht so speichern, dass ich ausserhalb der Schleife ein volles Arrey habe? Da dies nur logisch ist, dass das geht: Wo mache ich den Fehler?

Danke der Hilfe.
 
Zurück