Home arrow CodeS arrow FTP-Funktionen

Firefox Ad

Herzlichen Glückwunsch zu Ihrem Browser..
Durch die Weiten des WEBs mit:

An apple a day keeps the doctor away...


Joomla-Shop


NiK-IT.de Barcode


FTP-Funktionen PDF Drucken E-Mail
Dienstag, 19. September 2006
Originale:
http://de3.php.net/manual/de/ref.ftp.php
http://www.webmaster-resource.de/.../rechte-einer-datei...
<?php
// Herstellen der Basis-Verbindung
$conn_id = ftp_connect("$ftp_server"); 
 
// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 
 
// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) { 
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich"; 
        die; 
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }
 
// Upload der Datei
$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY); 
 
// Upload-Status überprüfen
if (!$upload) { 
        echo "Ftp upload war fehlerhaft!";
    } else {
        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben";
    }
 
// Schließen des FTP-Streams
ftp_quit($conn_id); 
?>
Example: ftp_put() example
<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';
 
// set up basic connection
$conn_id = ftp_connect($ftp_server);
 
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}
 
// close the connection
ftp_close($conn_id);
?>
Dieses Script zeigt Ihnen ein Beispiel, wie Sie auf einem FTP-Server die Rechte einer Datei oder eines Verzeichnisses ändern können.
Das Script benötigt als Parameter den FTP-Server, den FTP-User und das FTP-Passwort (Z. 3-5). Außerdem müssen Sie das Verzeichnis oder die Datei angeben (Z. 7), dessen bzw. deren Rechte geändert werden sollen sowie den neuen Wert (Z. 8).
Quellcode
   1.      <?php
   2.       
   3.      $FTPServer   = "ftp.1und1.de";
   4.      $FTPUser     = "User";
   5.      $FTPPasswort = "1234";
   6.       
   7.      $Dateiname = "test";
   8.      $Rechte = "777";
   9.       
  10.      $VerbindungsID = ftp_connect($FTPServer);
  11.      $LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
  12.       
  13.      if($VerbindungsID && $LoginErgebnis)
  14.      {
  15.          $Erfolg = ftp_site($VerbindungsID, "CHMOD ".$Rechte." ".$Dateiname);
  16.      
  17.          if($Erfolg)
  18.          {
  19.              echo"Die Rechte von ",
  20.                  $Dateiname,
  21.                  " wurden auf den Wert ",
  22.                  $Rechte,
  23.                  " gesetzt.";
  24.          }
  25.          else
  26.          {
  27.              echo"Die Rechte konnten nicht geändert werden.";
  28.          }
  29.      }
  30.      else
  31.      {
  32.          echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
  33.      }
  34.       
  35.      ?>

Im oberen Teil des Scriptes müssen Sie Ihre FTP-Daten hinterlegen: den genutzten FTP-Server sowie den Usernamen und das Passwort.

Nach Herstellen einer FTP-Verbindung zum Server (Z. 10) sowie dem Login auf Selbigen (Z. 11), wird mit der Funktion ftp_site(...) der Befehl CHMOD 777 test abgesendet. Damit wird das Verzeichnis "test" auf den Wert 777 gesetzt. Im Erfolgsfall wird ebenso wie im Fehlerfall eine entsprechende Meldung ausgegeben (Z. 17-28).

Die Zeile

$Erfolg = ftp_site($VerbindungsID, "CHMOD ".$Rechte." ".$Dateiname);
können Sie ab PHP 5 auch durch
$Erfolg = ftp_chmod($VerbindungsID, $Rechte, $Dateiname);
ersetzen.
ftp_alloc -- Allocates space for a file to be uploaded
ftp_cdup -- Wechselt in das um eine Ebene höhere Verzeichnis
ftp_chdir -- Verzeichnis-Wechsel auf einem FTP-Server
ftp_chmod -- Setzt die Zugriffsrechte einer Datei über FTP
ftp_close -- Beendet eine FTP Verbindung
ftp_connect -- Stellt eine FTP-Verbindung her
ftp_delete -- Löscht eine Datei auf dem FTP-Server
ftp_exec -- Fordert die Ausführung eines Programmes auf dem FTP-Server an
ftp_fget --  Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete,
lokale Datei (download)
ftp_fput --  Übertragt eine geöffnete Datei auf einen FTP-Server (upload)
ftp_get_option -- Ruft diverse Laufzeitoptionen des ausgewählten FTP-Streams ab
ftp_get --  Liest eine Datei von einem FTP-Server und speichert sie lokal (download)
ftp_login -- Anmelden einer FTP-Verbindung (Login)
ftp_mdtm --  Ermittelt die letzte Änderungszeit der angegebenen Datei
ftp_mkdir -- Erzeugt ein Verzeichnis
ftp_nb_continue -- Nimmt die Übertragung einer Datei wieder auf (nicht blockierend)
ftp_nb_fget --  Überträgt den Inhalt einer Datei von dem FTP-Server und speichert sie
in eine lokal geöffnete Datei (nicht blockierend)
ftp_nb_fput -- Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
ftp_nb_get -- Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
ftp_nb_put -- Speichert eine Datei auf dem FTP-Server (nicht blockierend)
ftp_nlist --  Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
ftp_pasv -- Schaltet den passiven Modus ein oder aus
ftp_put --  Überträgt eine Datei auf einen FTP-Server (upload)
ftp_pwd -- Gibt den aktuellen Verzeichnis-Namen zurück
ftp_quit -- Schließt / beendet eine FTP-Verbindung
ftp_raw -- Sendet ein beliebiges Kommando an den FTP-Server
ftp_rawlist --  Gibt eine detaillierte Liste der Dateien
 in einem angegebenen Verzeichnis zurück
ftp_rename -- Benennt eine Datei auf dem FTP-Server um
ftp_rmdir -- Löscht ein Verzeichnis
ftp_set_option -- Setzt diverse FTP Laufzeitoptionen
ftp_site -- Sendet ein SITE-Kommando zum Server
ftp_size --  Ermittelt die Größe einer angegebenen Datei
ftp_ssl_connect -- Öffnet eine sichere SSL-FTP Verbindung
ftp_systype --  Ermittelt den Systemtyp des entfernten FTP-Servers



http://de3.php.net/.../function.ftp-rawlist.php

Another "formula" for decoding the rawlist: the ide is that normaly a "ls" contains info like below:

and: the "time" contains a ":" (which is NOT contained in any of the other infos -if we reversely read the array)

and, in the case the "time" would not exist, i have done a "protection script" that would try to find out using the year... Yet that may NOT always work since a user name or group name MAY contain an item like "1999" etc... (and i did not check the date format reversely -on the filename first- since a probability of presence is higher of a date is MUCH higher in a filename)

So here we go:
<?
 
[... code ...]
 
$fnTest=array("198","199","200","201","202");
 
[... code ...]
 
$j=0;
$strrpos=strrpos($list[$i],":");
while($strrpos==0){
   $strrpos=strpos($list[$i],$fnTest[$j]);
   $j++;}
if($j){
   $strrpos+=2+strlen($fnTest[$j]);
}else{
   $strrpos+=4;}
$elmt=substr($list[$i],$strrpos);
 
[... code ...]
 
?>
and $elmt would *normally* contain the info we want... but i'm still working on it! -------------------------------- Here we go for a 100% working code... :D
<?
 
[code]
 
function cutspaces($str){
   while(substr($str,0,1)==" "){$str=substr($str,1);}
   return $str;}
 
[code]
 
$folders=array();
$files=array();
for($i=0;$i<sizeof($list);$i++){
   list($permissions,$next)=split(" ",$list[$i],2);
   list($num,$next)=split(" ",cutspaces($next),2);
   list($owner,$next)=split(" ",cutspaces($next),2);
   list($group,$next)=split(" ",cutspaces($next),2);
   list($size,$next)=split(" ",cutspaces($next),2);
   list($month,$next)=split(" ",cutspaces($next),2);
   list($day,$next)=split(" ",cutspaces($next),2);
   list($year_time,$filename)=split(" ",cutspaces($next),2);
   if($filename!="." && $filename!=".."){
       if(substr($permissions,0,1)=="d"){
           $folders[]=$filename;
       } else {
           $files[]=$filename;}}}
sort($folders);
sort($files);
 
[code]
 
?>
so this will simply "get" all the information WITHOUT being in any case interfered with some spaces, ... etc etc... It will even put files in a $files array and folders in a $folders array, and sort them, so you will be able of using all this later and: the "folders" will NOT contain "." and ".." ;) so you can use all this to make a beautiful FTP interface... later on you could for example put permissions and etc etc in other arrays to use them in your result... cute.... ---------------------------- hope this helps someone: ---------------------------------- This script will properly handle FTP servers where the returned date/time differs from the generic mm-dd-YYYY hh:mm:ss format: ")) !== FALSE) { $filelink = substr($list[$i], $k+4); $list[$i] = substr($list[$i], 0, $k); } else $filelink = ""; //----parse filename $k = strrpos($list[$i], " "); $filename = substr($list[$i], $k+1); $list[$i] = substr($list[$i], 0, $k); //----parse the rest of info list ($permissions, $list[$i]) = parsenext ($list[$i]); list ($number, $list[$i]) = parsenext ($list[$i]); list ($owner, $list[$i]) = parsenext ($list[$i]); list ($group, $list[$i]) = parsenext ($list[$i]); list ($size, $time) = parsenext ($list[$i]); //----ok, put all this into the related array if ($filename != "." && $filename != "..") { $m = array(); $m["name"] = $filename; $m["link"] = $filelink; $m["size"] = $size; $m["time"] = $time; $m["owner"] = $owner; $m["group"] = $group; $m["permissions"] = $permissions; if (substr($permissions, 0, 1) == "d") $folders[count($folders)] = $m; else if (substr($permissions, 0, 1) == "l") $links[count($files)] = $m; else $files[count($files)] = $m; } } sort ($folders); sort ($files); sort ($links); ?> This script works fine on any raw list that complies with the following format: permissions number owner group size time name [" -> " link_to] where time may have whatever format the FTP server wants. ;-) It also returns folders, files and links in separated sorted lists (got this idea from the note of "postmaster at alishomepage dot com" in this help page). I'm afraid I forgot the "parsenext" function in my previous note. Here it is: ------------------------------------
 
< zurück   weiter >
 


Suchmaschinenoptimierung mit Ranking-Hits PageRank Verifizierung www.nik-it.de
symmetrical