Das Debuggen von Programmcode habe ich nie richtig wahrgenommen und gelernt. In VBA kann ich das mittlerweile einsetzen, bei PHP habe ich wieder mal so meine Probleme. Nun weiß ich aber, dass ich mit
var_dump() durchaus gute Erkenntnisse erzielen kann, wenn mal wieder etwas nicht funktioniert.
Insbesondere bei der Nutzung von Arrays und deren Inhalte kann ich überprüfen, ob ich die richtigen Ergebnisse erwarten kann.
Bei der Ermittlung der Breite eine Videos, welches über ein Array via
GET als Link aufzurufen wurde, hatte ich Probleme, dass Ergebnis der Shell-EXEC in eine Variable zu bekommen. Durch
var_dump() erst habe ich geschnallt, dass ich es mit einem Array zu tun hatte.
Und zwar habe ich den Inhalt von
$_GET mittels
var_dump() ausgewertet:
<?php
var_dump($_GET);
?>
Das Ergebnis war:
<?php
array(1) { ["video"]=> string(72) "/TM2_1/serien/wilsberg/wilsberg_24_interne_affaeren_2008-zp7ayygia5q.mp4" }
?>
Damit war klar, dass ich ein Array als Ergebnis erhalten hatte. Wie aber nun das Ergebnis für meine Zwecke nutzen. Der komplette String aus Ordner und Dateiname sollte in dem Shell-EXEC-Statement als Variable genutzt werden, um die Breite zu ermitteln.
Eher durch Zufall wurde mir klar, dass in dem Array nur ein Element enthalten war - nämlich
video.
Und wie ich gesehen konnte, wurde
video in dem Tag für den HTML-Player als Variable für den
source-Tag genutzt:
<?php
<source src=<?php echo $video; ?> type="video/mp4">
?>
Und damit war dann klar, dass ich für den absouten Dateinamen nun eine Variable
$video würde nutzen können:
<?php
$breite = shell_exec("ffprobe -v error -select_streams v:0 -show_entries stream=width -of csv=s=x:p=0 " . $video);
?>
Der Inhalt der Variablen
$video war in diesem Falle:
<?php
/TM2_1/serien/wilsberg/wilsberg_24_interne_affaeren_2008-zp7ayygia5q.mp4
?>
Damit konnte ich die Breite nun in den HTML-Tag für den Player bei
width einsetzen.
Der in den eckigen Klammern eines Arrays stehende Wert, ist die zu nutzenden Variable für die weitere Verwendung im Programmcode.