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/)
-   -   FTP Befehl um eine Datei auszulesen? (https://www.php-resource.de/forum/php-developer-forum/80458-ftp-befehl-um-eine-datei-auszulesen.html)

cgdesign 19-01-2007 09:50

FTP Befehl um eine Datei auszulesen?
 
Hallo,

ich verbinde mich mit meinem Script auf einen FTP-Server. Darauf liegt eine bestimmte Datei, die ich auslesen möchte und dann mittels eines Filters in eine DB schreiben möchte. Auf den Server kann ich mich schon mal verbinden. Die Filterfunktion ist auch schon fertig, nur wie kann ich auf dem FTP selber eine Datei ansprechen, ohne dass ich sie downloade?
So wie ich es jetzt gemacht habe, funktioniert das ja leider nicht ganz.

PHP-Code:

if((!$conn_id) || (!$login_result))
{
    echo 
"FTP Verbindung ist fehlgeschlagen!";
    exit;
}
else
{
    
$file "0010046210.txt";
    
$divider "\t";
    
$row 6;
    if(
is_file($file))
    {
        if(
is_readable($file))
        {
            
$file file_get_contents($file);
            
$list explode($divider$file);
            if(isset (
$list [$row 1]))
            {
                print 
$list [$row -1];
            }
        }
        else
        {
            die(
"Datei nicht lesbar.");
        }
    }
    else
    {
        die(
"Datei nicht vorhanden.");
    }



Wyveres 19-01-2007 09:55

was hat das mit FTP zutun?

filesystem einfach mal zu gemühte führen.

wenn du eine datei auslesen willst dann so.
FTP dient eigentlich dazu dateien hoch und runter zu laden.

cgdesign 19-01-2007 10:04

Wie du siehst, habe ich das ja schon mit dem Filesystem gelöst, aber er sagt mir immer, die Datei wäre nicht vorhanden. Aber wenn ich die Datei aufrufe ist sie da, da dachte ich eben, ich müsste einen speziellen FTP-Befehl nehmen, da ich noch nie was mit FTP vorher zu tun gehabt hatte.

Wyveres 19-01-2007 10:09

wo genau liegt die datei die du aufrufen möchtest?

http://www.cgdesign.de/ << direkt auf der 1 eben oder in einem unterordner?

weil du prüfst nur ob die datei
PHP-Code:

$file "0010046210.txt"

in der ersten eben sitzt ... wenn sie woanders steckt musst du das angeben ...

cgdesign 19-01-2007 10:15

Gute Frage, ist nicht mein FTP-Server, aber wenn ich da mir mit ftp_nlist alles ausgeben lasse, sieht das so aus:

array(4) {
[0]=>
string(14) "0010046210.txt"
[1]=>
string(11) "acat-de.txt"
[2]=>
string(9) "csell.txt"
[3]=>
string(11) "acat-en.txt"
}

Die Datei ist also schon vorhanden. Es müsste also die erste Ebene sein. Wenn ich jetzt aber mit file_exists prüfe ob die Datei auch wirklich da ist, sagt er mir jedes Mal, dass sie nicht vorhanden wäre. Aber ich kann keine Eben tiefer oder höher gehen.

penizillin 19-01-2007 10:25

Zitat:

was hat das mit FTP zutun?
hat er doch gesagt:
Zitat:

ich verbinde mich mit meinem Script auf einen FTP-Server. Darauf liegt eine bestimmte Datei, die ich auslesen möchte ...
also eignen sich die dateisystem funktionen wie file_exsists() nicht.

cgdesign 19-01-2007 10:30

Ok, mit:

PHP-Code:

    $contents ftp_nlist($conn_id".");
    foreach(
$contents as $th)
    {
        if(
$th == $file)
        {
            die(
"es existiert die datei");
        }
    } 

Klappt es und er findet die Datei. Wie kann ich diese nun jetzt auslesen und weiterverarbeiten?

penizillin 19-01-2007 10:31

lade sie herunter.

cgdesign 19-01-2007 10:36

Und wohin downloaden? Es sollte eigentlich ein dynamisches Script werden, dass jedes Mal automatisch eine Datei von dem Server ausliest und den Inhalt dann sofort in eine DB speichert. Wenn ich sie mir jetzt lokal downloade, bringt mir das ja mal gar nichts...

Wyveres 19-01-2007 10:36

1. Alternative.

mach es erst Über FTP Downloade die Datei ... Jag sie anschliessend auf deine webseite und dann kannst du in ruhe mit dem Filesystem befehlen von PHP arbeiten.

2. Wo genau LIEGT die datei?

gesamte url bitte ...

vieleicht verbindet der FTP direkt in einen unterordner somit kann es sein das sie im HTTP :// verzeichnispfad ganz wo anders liegt.

3. der is_file usw. die gesamten befehle prüfen auf deinem Webspace das heist ...

$file = "0010046210.txt";

wird genau hier gesucht.

http://www.cgdesign.de/0010046210.txt

und wenn ich mir das mal genau ansehe.
existiert die datei dort nicht.

oder liege ich falsch und die skripte die du anwendest liegen an einem ganz anderem ort?

mrhappiness 19-01-2007 10:37

@cgdesign
Lokal bei FTP heißt: Lokal aus Sicht des Client.

Der FTP-Client ist der Webserver => Lokal ist irgendwo auf dem Webserver

penizillin 19-01-2007 10:41

Wyveres:
1. richtig, s. auch mrhappiness
2. warum muss es eine url (du meinst sicherlich http) geben? es war nur dir rede von einem ftp-server.
3. nein, die dateisystem-funktionen werden im aktuellen ordner ausgeführt, dieser kann auch der doc_root sein, muss aber nicht.

cgdesign 19-01-2007 10:44

@Wyveres

Wie gesagt, ist nicht mein FTP-Server, sondern einer, auf dem ich nur auf diese Datei zugreifen kann, hat jetzt mit meienr privaten Homepage rein gar nichts zu tun ;)

@mrhappiness

Ok, also müsste ich die Datei auf meinen Webserver laden und dort kann ich dann schön mit file_get_contents usw. rumspielen, ok, probier ich das mal...

Wyveres 19-01-2007 10:56

Zitat:

Original geschrieben von penizillin
Wyveres:
1. richtig, s. auch mrhappiness
2. warum muss es eine url (du meinst sicherlich http) geben? es war nur dir rede von einem ftp-server.
3. nein, die dateisystem-funktionen werden im aktuellen ordner ausgeführt, dieser kann auch der doc_root sein, muss aber nicht.

@penizillin

wenn ich cgdesign richtig verstanden habe.

dann hat er bis jetzt eine auf einem exteren FTP Server geschaut ob eine datei dort existiert.

danach hat er dateisystem-funktionen benutzt die LOKAL auf seinem nach der Datei schauen.

da sie DORT aber nicht existent ist. funktioniert das ganze halt nicht.

sprich wenn das Skript irgenntwo auf http://www.cgdesign.de/ liegt
und die datei die er auslesen will
aber auf http://example.com/user/txt/datei.txt liegt.

suchen die befehle laut meines Wissens auf www.cgdesign.de nach der datei um sie auszulesen.

also
entweder er sorgt dafür das die datei auf sein webspace gelangt wo auch das skript liegt.
oder
er lässt sich was einfallen um die datei von ihrem orginal platz auszulesen.

ich tendiere zu variante 1.

penizillin 19-01-2007 11:03

Zitat:

@penizillin

wenn ich cgdesign richtig verstanden habe. [...]
aber auf http://example.com/user/txt/datei.txt liegt.
bis hierhin richtig.
Zitat:

suchen die befehle laut meines Wissens auf www.cgdesign.de nach der datei um sie auszulesen.
nein, wo "die befehle suchen", habe ich weiter oben gesagt. schau dir getcwd und chdir an.
Zitat:

er lässt sich was einfallen um die datei von ihrem orginal platz auszulesen.
mit ftp dürfte das nicht gehen. allein schon wegen dem "t" in "ftp".


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:23 Uhr.

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