Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Suche Script zum Dateitransfer zwischen Webspace (https://www.delphipraxis.net/88136-%5Bphp%5D-suche-script-zum-dateitransfer-zwischen-webspace.html)

MarvinM 10. Mär 2007 19:25


[PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Hallo zusammen!

Ich suche ein PHP-Script, mit welchem eine Datei von einer URL auf einen Webspace kopieren kann.

Wofür das gedacht ist: Ich habe ein backup von meinen Daten auf Webspace 1 gemacht, das Backup will ich jetzt auf Webspace 2 kopieren und später wenn der Server mit Webspace 1 formatiert worden ist, wieder zurückspielen.

Ich könnte das auch per FTP runter und wieder hochladen, allerdings würde das dauern...

Danke für eure Hilfe!

PS: Meine PHP-Kenntnisse sind nicht umwerfend...

//EDIT: Server in Webspace geändert ;-)

ghost007 10. Mär 2007 19:30

Re: [PHP] Suche Script zum Dateitransfer zwischen Servern
 
hi,
redest du hier von echten servern, oder von webspace?
weil wenn es ein echter server ist, kannst du da drauf doch ein programm laufen lassen, das das für dich macht, oder?

MarvinM 10. Mär 2007 19:33

Re: [PHP] Suche Script zum Dateitransfer zwischen Servern
 
hi,

(leider) geht es nur um Webspace...

himitsu 10. Mär 2007 19:42

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Sind Webspace 1 und 2 beim selben Anbieter?

Dann könntest du ja einfach deinen Anbieter mal um das Kopieren bitten.

Oder zumindestens auch nur ein Backup (egalwohin) von Webspace 1 und danach dann wieder zurück.




Theoretisch ist es ja möglich Dateien z.B. per PHP-Script von einem anderem server runterzuladen, aber frag mich nicht wie ._.
(selber fast keine Kenntnise in PHP hab)

Schonmal im Netz (google, sourceforge und Co.) nach entpsrechenden Scripten gesucht?


PS: bei meinem WebSpace kann ich ein "ServerInternes" Backup machen, wo alles in einer GZip-Datei gespeichert wird, dieses kann ich runter- und auch wieder hochladen.

im Confixx kann ich diese gepackte Backup erstellen, oder eben zurückladen (entpacken)

MarvinM 10. Mär 2007 19:47

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
nein leider sind die nicht beim selben Anbieter.

Es gibt so ein Script! Es ist in der DocMan Komponente von Joomla verbaut, daher bin ich auch auf die idee gekommen.

Bei Google gibt es zwei Scripte: Script eins: Deadlink, nicht mehr zu finden; Script zwei: Maximal 5 MB; ich muss ca 150 MB kopieren :-(

ghost007 10. Mär 2007 19:50

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
hm, tut mir leid, awa dann fällt mir auch nix ein ... mein php coder is grad nich erreichbar :(

p0w3r5tr34m3r 10. Mär 2007 20:00

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
da du ein FTP Account bei beiden WebSpaces hast könntest du doch ein Script machen wo du die dateien von Webspace1 zu Webspace2 per FTP hochlädst!?

Mit freundlichen Grüßen
p0w3r5tr34m3r

Hador 10. Mär 2007 20:09

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Du könntest folgendes machen:
Script auf Webspace A erstellt beim erste aufruf durch das Script auf Webspace B eine Dateiliste mit allen Dateien auf Webspace A (incl. Pfad).
Daraufhin geht Webspace B, also das Script, diese Liste durch und übergibt an das A-Script nacheinander die Dateinamen als ID, das diese dann bspw. per file_get_contents einliest und ausgibt. Diese Ausgabe wird widerum vom Script B gelesen und bspw. per file_put_contents in eine neue Datei auf Webspace B geschrieben.

Das auslesen einer Datei, in diesem Beispiel die Ausgabe von Script A, kannst du imho folgendermaßen bewerkstelligen:

Code:
  ob_start();
  include(<URL>);
  $contents = ob_get_contents();
  ob_end_clean();

yankee 10. Mär 2007 20:12

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
http://de.php.net/manual/de/ref.ftp.php

Damit kannst du direkt per ftp von dem einen webspace auf dem anderen kopieren...
Schneller wird's, wenn du die Datien vorher alle in ein Archiv steckst, rüberschiebst und dann auf der Gegenseite wieder entpackst...

@Hador:
Wenn due die php-Dateien nicht alle in .txt oder sowas, was eben nicht als php durchgeht umbenennst, wird der Webserver von dem du sie abrufst auslesen. Und wenn er es nicht tun sollte, tut es dein incluide-Befehl. Die php-Dateien bekommst du so nicht kopiert...

Valle 10. Mär 2007 20:13

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Oder, wie oben beschrieben, mit ftp:

Code:
<?php

  $ftp_server      = "test.de";        # Host, ohne ftp://
  $ftp_user_name   = "";               # Benutzername
  $ftp_user_pass   = "";               # Passwort
  $destination_file = "log.gif";        # Datei auf dem Remote-Host
  $source_file     = "log.gif";        # Datei auf diesem Host
 
  // Um die maximale Script-Ausführ-Dauer zu deaktivieren
  set_time_limit(0);

  // Verbindungsaufbau
  $conn_id = ftp_connect($ftp_server);
  // Login mit Username und Passwort
  $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  // Verbindung überprüfen
  if ((!$conn_id) || (!$login_result)) {
     echo "FTP Verbindung ist fehlgeschlagen!\n";
     echo "Verbindungasufbau zu $ftp_server mit Username $ftp_user_name versucht.\n";
     exit;
   } else {
     echo "Verbunden zu $ftp_server mit Username $ftp_user_name";
   }
  // Datei hochladen
  $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
  // Upload überprüfen
  if (!$upload) {
    echo "FTP-Upload ist fehlgeschlagen!\n";
  } else {
    echo "Datei $source_file auf Server $ftp_server als $destination_file hochgeladen\n";
  }
  // FTP Verbidung schließen
  ftp_close($conn_id);
?>
MfG,

Valle

Hador 10. Mär 2007 20:29

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Zitat:

Zitat von yankee
@Hador:
Wenn due die php-Dateien nicht alle in .txt oder sowas, was eben nicht als php durchgeht umbenennst, wird der Webserver von dem du sie abrufst auslesen. Und wenn er es nicht tun sollte, tut es dein incluide-Befehl. Die php-Dateien bekommst du so nicht kopiert...

Das ist Quatsch. Das Script A, welches auf dem selben Webspace, wie die zu kopierenden dateien liegt, kann diese Dateien ohne Probleme per fread oder file_get_contents auslesen. Dabei spielt die Dateiendung keine Rolle. Welche Datei von dem Script A ausgelesen und ausgegeben werden soll, bekommt es ja vom Script B per PUT übermittelt (die angesprochene ID). Mit dem include wird dann die Ausgabe des Scriptes A vom Script B eingelesen. Dank ob_start(); bleibt der Inhalt dabei im internen Puffer und wird nicht ausgegeben, so dass man ihn ohne weiteres in eine neue datei auf Webspace B schreiben kann.

yankee 10. Mär 2007 20:35

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
@Hador:
Ich bin zwar auch nach erneutem durchlesen deines Postes völlig verwirrt, welcher Webspace jetzt A ist und welcher B und ob du nun nach A oder nach B oder wierum auch immer kopieren willst.
Ob das Script mit dem include auf dem Empfänger oder Sender liegt ist mir auch nicht ganz klar, aber trotzdem ist mir klar, dass include die Datei auswerted. Ich kann es in meinem Kopf drehen und wennden wie ich will. Aber ich habe noch keine Kombination gefunden, wo das Sinn machen würde in der gesamten Aufgabenstellung include zu verwenden.

Hador 10. Mär 2007 20:44

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Gut dann ein kleines Beispiel für eine vordefinierte Datei :wink:

Script A auf dem Ausgangswebspace, von dem die Daten kopiert werden sollen:
Code:
<?
  echo file_get_contents('datei_xy.php'); // Die gewünschte Datei wird normalerweise vom anderen Script übergeben
?>
Script B auf dem Zielwebspace:
Code:
<?
  ob_start();
  include('http://www.example.com/script_a.php');
  $contents = ob_get_contents();
  ob_end_clean();
  file_put_contents('datei_xy.php', $contents);
?>

MarvinM 10. Mär 2007 20:47

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Es klappt mit dem Script!

Viel Dank euch allen! Das hat mir (DSL Lite Nutzer) Stunden an Ladezeit erspart :-)

yankee 10. Mär 2007 21:13

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Zitat:

Zitat von Hador
Script B auf dem Zielwebspace:
Code:
<?
  ob_start();
  include('http://www.example.com/script_a.php');
  $contents = ob_get_contents();
  ob_end_clean();
  file_put_contents('datei_xy.php', $contents);
?>

Ok, sagen wir mal datei_xy.php sieht so aus:
Code:
<?php
$a =5;
$b =6;
echo $a+$b;
?>
Dann steht nach dem dein Script ausgeführt wurde in $contents:
Code:
11
Zumindest wenn ich die Aufgabenstellung richtig verstanden habe war das nicht Sinn der Sache. Stattdessen würde ich das dein Script so umschreiben:
Code:
<?
  file_put_contents('datei_xy.php', file_get_contents('http://www.example.com/script_a.php'));
?>
Das sollte den gewünschten Effekt haben.

EDIT:
Noch kürzer und performanter:
Code:
<?
  copy('http://www.example.com/script_a.php','datei_xy.php');
?>
EDIT2:
Und in dem anderen Script übrigens auch readfile statt echo get_file_contents... Spart Ressourcen und geht danna uch mit Dateien die grösser als das memory-limit sind.

DGL-luke 10. Mär 2007 21:17

Re: [PHP] Suche Script zum Dateitransfer zwischen Webspace
 
Bei Google suchenServer to Server Transfer


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz