PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   CSV-Datei von fremdem Server importieren (https://www.php-resource.de/forum/php-developer-forum/88396-csv-datei-von-fremdem-server-importieren.html)

chefdesigner 20-11-2007 17:36

CSV-Datei von fremdem Server importieren
 
Gibt es die Möglichkeit, eine zum Download bereit gestellte CSV-Datei von einem anderen Server einzulesen?

Hintergrund:
Ich möchte Affiliate-Daten, die in einer CSV-Datei bereitgestellt werden direkt verarbeiten (in meine Datenbank importieren) oder zumindest auf meinen Server ziehen.

Ist soetwas mit PHP möglich?

arkos 20-11-2007 17:49

fopen und fgetcsv sollten wir weiterhelfen....

chefdesigner 20-11-2007 18:02

Die beiden Befehle habe ich mir bereits angesehen, scheinen aber nur auf dem eigenen Server zu funktionieren. Ich benötige jedoch eine Funktion, die die CSV-Daten von einem anderen Server auf meinen eigenen kopiert oder eben direkt vom fremden Server ausliest.

onemorenerd 20-11-2007 18:04

fsockopen()

chefdesigner 21-11-2007 14:03

Danke für den Link, ich habe das Ganze mal ausprobiert, funktioniert aber noch nicht. Ich komme irgendwie nicht ganz damit klar.
Kann mir jemand sagen, welche Voraussetzungen erfüllt sein müssen, damit fsockopen() funktioniert?

jahlives 21-11-2007 14:14

Funktioniert nicht ist wiedermal eine Topp-Fehlerbeschreibung ;)
Hast du dir das Bsp 1406 im Manual zu fsockopen() angeschaut? Genau so sollte es funktionieren. Du musst dann bei der Auswertung der Serverantwort nur darauf achten, dass du die Serverheader von den Daten trennst.

Gruss

tobi

chefdesigner 21-11-2007 14:22

Das Beispiel hab ich mir angesehen, hab meinen Fehler jetzt auch gefunden, ich hatte statt "www.example.com" die komplette Adresse angegeben "www.example.com/ordner/datei.csv".

Mein Frage ist jetzt nur, wie ich nun zu der CSV-Datei komme, welche Befehle nutze ich denn hierfür?

onemorenerd 21-11-2007 14:37

Im den User Comments zu fsockopen() steht mit Sicherheit ein Beispiel.

Kropff 21-11-2007 14:40

oder folgender hinweis:
Zitat:

Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der in Verbindung mit anderen Datei-Funktionen (wie z.B. fgets(), fgetss(), fputs(), fclose(), feof()) gebraucht werden kann.
da muss er sich nur noch das passende raussuchen.

gruß
peter

PHP-Desaster 21-11-2007 14:40

Du musst halt mit dem Server sprechen!
Zitat:

GET /pfad/zum/file HTTP/1.1
Host: www.example.com
...

chefdesigner 21-11-2007 15:17

Problem ist, dass ich folgende Fehlermeldung bekomme, wenn ich folgende Funktion ausführe:

PHP-Code:

    $fp fsockopen("www.zanox.com"80$errno$errstr30);
    
// der Rest ... 

    
$csv_datei 'http://productdata.zanox.com/CSVFormat.aspx?partnerCode=.....';
    echo 
$fp fopen $csv_datei'r' ); 

Fehlermeldung:
[function.fopen]: failed to open stream: no suitable wrapper could be found in /var/www/webxx/html/example/csv_include.php on line 63

jahlives 21-11-2007 15:33

Wo hast du in den Beispielen gesehen, dass es so gehen würde :dontknow:
In den Beispielen steht in etwa:
1. Socket zum entfernten Host öffnen
2. GET Request nach dem File absetzen
3. Serverantwort auslesen
4. ausgelesene Daten wie's beliebt verarbeiten

Du versuchst aber das File direkt via fopen() zu öffnen und das setzt allow url open voraus!
PHP-Code:

$fp fsockopen('www.zanox.com',80,$errno,$errstr,30);
if(!
fp){
  die(
'Verbindungsfehler');
}else{
  
$request "GET /CSVFormat.aspx?partnerCode=... HTTP/1.1\r\n";
  
$request .= "Host: www.zanox.com\r\n";
  
$request .= "Connection: Close\r\n\r\n";
  
fputs($fp,$request);
  
$antwort '';
  while(!
feof($fp)){
    
$antwort fgets($fp);
  }


so müsste es eigentlich klappen.

Gruss

tobi

chefdesigner 21-11-2007 15:53

Vielen Dank für deine Hilfe.

Bekomme jetzt einen 404-Fehlerbericht und werde anschließend auf die Startsteite von zanox weitergeleitet. Wie bekomme ich denn jetzt raus wo der Fehler liegt?

jahlives 21-11-2007 16:05

Zitat:

Wie bekomme ich denn jetzt raus wo der Fehler liegt?
z.B. indem du die URL mal direkt im Browser aufrufst und mit einem Header Tool die Antwort des Servers auswertest (für FF gibt's dazu die Live Header Extension). Wird der Request weitergeleitet? Oder hast du einen Schreibfehler in der URL? Den Partner Code haste schon agepasst?

Gruss

tobi

chefdesigner 21-11-2007 16:11

Den Partner-Code hab ich natürlich angepasst, ja. ;-)

Das direkte Aufrufen der URL funktioniert auch. Werd' mal eben den FireFox aufmachen und die von dir angesprochene Extension installieren.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:46 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG