staging.inyokaproject.org

Verzeichniszugriff mit PHP

Status: Ungelöst | Ubuntu-Version: Ubuntu MATE 20.04 (Focal Fossa)
Antworten |

jochenv

Anmeldungsdatum:
23. April 2016

Beiträge: 670

Hallo zusammen,

ich habe hier einen kleinen Server (Ubuntu Server) ohne Monitor und Tastatur. Und greife von meinem Laptop (Ubuntu MATE) darauf zu.

Ich bin noch ein wenig am Basteln und auch noch recht neu in der Programmierung von PHP.

Folgendes Projekt ... über den Fernseher möchte ich Filme schauen die auf dem Server liege. Mit dem Fernseher kann ich auf die Webseiten von Serverzugreifen. So der Gesammtplan, aber erst mal Stück für Stück.

Ich habe nun eine kleines Beispiel aus dem Netz gefunden :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// Pfad festlegen:
$path = "/var/www/html/php-tutor/tv/"; 
echo "der Path ....: ".$path."<br>";

// Datei festlegen:
$filename = "Datei1.txt";
echo "die Datei ...: ".$filename."<br>";
echo "<br>";

// prüfen, ob es diesen Pfad schon gibt:
if(!dirname($path)!= $path) 
{
 // wenn es den Ordner noch nicht gibt, wird er angelegt
 echo "Der Pfad existiert noch nicht.<br>";
 $pfadangelegt = mkdir($path);
 if (dirname($path)) 
 { echo "Der Pfad wurde angelegt<br>"; }
 else
 { die("Der Pfad konnte nicht angelegt werden."); }
}

       
// prüfen, ob es die Datei schon gibt
if(file_exists($path.$filename)) 
{ echo "Die Datei existiert schon.<br>"; }
else 
{ echo "Die Datei existiert noch nicht.<br>"; }

       
// Datei neu anlegen bzw. öffnen
$file = fopen($path.$filename, "w");
// in die Datei schreiben
$geschrieben = fwrite($file, "Mein Text");
// Datei schliessen
fclose($file);
?>

hier soll z.B. überprüft werden ob ein Verzeichnis vorhanden ist oder nicht. Der kleine Script gibt aus das keine Verzeichnis vorhanden ist (Zeile12). Was beim ersten mal auch stimmt. Das Verzeichnis wird auch angelegt. Rufe ich das ganze noch mal auf, bekommen ich wieder angezeigt das keine Verzeichnis vorhanden ist, dem ist aber nicht so. Das Verzeichnis TV ist erstellt. Wo ist dort der Fehler ? Ich bekomme es nicht hin.

Gruß Jochen

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Hm, ich kenne PHP nicht so richtig, aber mit

$path=/var/www/html/php-tutor/tv/"

ist

dirname($path)=/var/www/html/php-tutor/

Also unabhängig von $path ist dirname($path) normalerweise nicht gleich $path Du solltest wohl eher so etwas verwenden:

if ( !is_dir( $path ) ) {
    mkdir( $path );     
}  

Und diese doppelte Verneinung in deinem Check ist eh nicht so schön...

Hier gibt's eine ganz gut aussehende folder_exists Funktion: https://stackoverflow.com/questions/5425891/how-do-i-check-if-a-directory-exists-is-dir-file-exists-or-both

function folder_exist($folder)
{
    // Get canonicalized absolute pathname
    $path = realpath($folder);

    // If it exist, check if it's a directory
    return ($path !== false AND is_dir($path)) ? $path : false;
}

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Warum brauchst Du dafür überhaupt PHP? Wenn Du das Verzeichnis mit den Filmen per Samba freigibst, ist doch normalerweise schon alles geritzt: Die schlauen Fernseher von heute sollten doch darauf zugreifen können, oder? Ansonsten gibt es auch fertige Mediaserver (hier oder hier), die auch eine HTML-Oberfläche bieten.

jochenv

(Themenstarter)

Anmeldungsdatum:
23. April 2016

Beiträge: 670

Hallo

rklm schrieb:

Warum brauchst Du dafür überhaupt PHP? Wenn Du das Verzeichnis mit den Filmen per Samba freigibst, ist doch normalerweise schon alles geritzt: Die schlauen Fernseher von heute sollten doch darauf zugreifen können, oder?

PHP zum einen zum lernen ....

Ich habe weder Zugriff auf Samba-Freigaben noch auf NFS-Freigaben vom Fernseher aus. Komischer weiße habe ich Zugriff auf die Fritzbox wo nichts drauf ist.

Mediaserver schaue ich mir mal an.

Gruß Jochen

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

jochenv schrieb:

rklm schrieb:

Warum brauchst Du dafür überhaupt PHP? Wenn Du das Verzeichnis mit den Filmen per Samba freigibst, ist doch normalerweise schon alles geritzt: Die schlauen Fernseher von heute sollten doch darauf zugreifen können, oder?

PHP zum einen zum lernen ....

Das ist natürlich ein guter Grund.

Ich habe weder Zugriff auf Samba-Freigaben noch auf NFS-Freigaben vom Fernseher aus. Komischer weiße habe ich Zugriff auf die Fritzbox wo nichts drauf ist.

Also, der Fernseher spricht SMB, aber Du kommst nicht auf die Freigabe? Dann ist es vermutlich ein Konfigurationsproblem.

Antworten |