php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2005, 00:04  
Gast
 
Beiträge: n/a
Standard fopen geht nicht, ich glaube ich bin dumm.

Hi. Ich verwende in meinem Script 2 mal fopen auf 2 Textdateien. Eine ziehe ich vorher von einem FTP-Server ins lokale Verzeichnis und öffne es dann. Die andere habe ich einfach erstellt und im Verzeichnis eingefügt.

So. Die vom FTP kann ich ohne Probleme öffnen. Die andere findet er nicht. Sie liegt aber in dem gleichen Verzeichnis wie die andere Datei vom FTP. Auch das Script ist in dem Verzeichnis.

Dann habe ich einfach mal alles rausgenommen von der ersten fopen Routine, nur noch die der selbsterstellten Datei drin gelassen. Geht immer noch nicht.

Dann habe ich einfach mal mit der Routine die nun lokale FTP-Datei geöffnet, was dann ging!

Letztendlich steht also fest, die vom FTP-gezogene Datei lässt sich so öffnen, die selbst eingefügte nicht. Die CHMOD-REchte sind beide gleich (644).

Warum kann ich die Datei nicht öffnen? HILFE!!!!

Linuxei..



PS:

http://de2.php.net/fopen habe ich schon geschaut. Aber konnte mir auch nicht helfen, da ich ja die Datei lokal habe und eine andere im gleichen Verzeichnis funktioniert...

Hiermit rufe ich die Datei auf. Hatte auch schon mal rb anstatt r versucht. Aber alles ohne Erfolg. Ich möchte nur die Datei zeilenweise auslesen...

Code:
    $fh = fopen("aaa.txt", "r"); // Datei öffnen
      
    
    if (is_resource($fh))
     {
      while ($zeile = fgets($fh))
        {
         echo $zeile, ' 
';
        }
        
      fclose($fh);
      
     }
    else // Sonst Fehlermeldung
     {
      echo "OhHoh";
     }


Und hier noch die Fehlermeldung:


Warning: fopen(aaa.txt): failed to open stream: No such file or directory in /homepages/42/d113425235/htdocs/phpkit/eigenes/counterstrike/css1stats.php on line 285
OhHoh
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.10.2005, 00:16  
Gast
 
Beiträge: n/a
Standard

Schau dir mal bitte fgets() im Handbuch an ...
 
Alt 20.10.2005, 01:09  
Gast
 
Beiträge: n/a
Standard

Der Fehler liegt bei fopen. Ich kann so die andere Datei auslesen. Kein Problem. Aber bei selbsterstellten/hochkopierten funktioniert es nicht. Findet dann die Datei nicht.

Die Zeile 185 ist die erste Zeile im Codefeld. Habe die Schleife jetzt auch mal leer gemacht, es passiert aber nichts. Und wie gesagt, mit der anderen Datei geht es. Alles wird ausgegeben. Und sie liegt im gleichen Verzeichnis und beide haben CHMOD 644. Alles gleich. Habe die Datei auch schon unterschiedlich hochgeladen. Binär und Ascii. Mit Smartftp. Nichts.
 
Alt 20.10.2005, 01:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ich kann so die andere Datei auslesen. Kein Problem. Aber bei selbsterstellten/hochkopierten funktioniert es nicht.
Wie sind die "funktionierenden" Dateien denn auf das System gekommen?
PHP-Code:
<?php
$direntries 
glob('./*');
foreach(
$direntries as $direntry) {
    
$bIsFile is_file($direntry);
    echo 
$direntry'ist ',  ($bIsFile) ? 'eine Datei.':'ein Verzeichnis.';
    if (
$bIsFile) {
        echo 
' fopen ';
        
$fh fopen($direntry'r'); // Datei öffnen
        
echo (!$fh) ? 'gescheitert':'erfolgreich';
    }
    echo 
"
\n"
;
}
?>
 
Alt 20.10.2005, 01:58  
Gast
 
Beiträge: n/a
Standard

Hi

Mit dieser Zeile:

PHP-Code:
<?php
copy
("ftp://User:Passwort@url/hlds/cstrike/cfg/mani_admin_plugin/mani_ranks.txt","aaa.txt");
?>

Diese Datei wird immer kopiert und macht auch keinen Fehler. Die eingene Datei habe ich mit dem Editor erstellt und als Textdatei gespeichert. Kann die Datei auf dem Server auch umbennen. Geht immer, die selbsterstellte geht nie. Kann man irgendwie etwas veranstalten, das die Datei "nicht sichtbar" markiert wird? Und wenn ja, wie bekomme ich das weg.

Ist echt seltsam. So ein Sch..... hält echt auf.
 
Alt 20.10.2005, 02:01  
Gast
 
Beiträge: n/a
Standard

Es sollte mit den Dateirechten gegessen sein. Die stehen wirklich auf 0644?
Wem gehören die Dateien, wlcher Gruppe sind sie zugeordnet?
Unter welchem Account/welcher Gruppe läuft das Skript?
 
Alt 20.10.2005, 02:19  
Gast
 
Beiträge: n/a
Standard Hm.... Ich versuche zu antworten so gut es geht. ;)

Also es steht im SmartFTP unter CHMOD:

644 (ist nur dreistellig)
Owner: Read und Write. Execute und Set UID nicht.
Group: Read. Write, Execute und Set GID nicht
Public: Read. Write, Execute und Sticky nicht.

Habe auch schon mal alles gesetzt. Ging aber nicht. (Set GID und Set UID kann ich nicht aktivieren)

User = die 1und1 Nummer, also mein Benutzername zum einloggen.
Group = ftpusers

bei der Datei vom FTP genau das gleiche.

Ebenfalls die PHP-Datei. Gleiche Rechte und Zuordnung.
 
Alt 20.10.2005, 02:39  
Gast
 
Beiträge: n/a
Standard

Die Worte hör' ich wohl, allein der rechte Glauben fehlt.

Einfach mal durchtesten.
PHP-Code:
<?php
$direntries 
glob('./*');
foreach(
$direntries as $direntry) {
    
$s stat($direntry);
    echo 
'Name: '$direntry"
\n"
;
    if (!
$s) {
        echo 
'stat failed';
    }
    else
    {
        echo 
'mode: '$s['mode'], "
\n"
,
                
'perm:'sprintf('0%03o', ($s['mode']&0777)), "
\n"
,
                
'uid: '$s['uid'], "
\n"
,
                
'gid: '$s['gid'], "
\n"
;
    }
    echo 
"\n<hr />\n";
}
?>
Das sollte dann ja für alle Dateien (bis auf den Namen) das gleiche anzeigen.
 
Alt 20.10.2005, 19:48  
Gast
 
Beiträge: n/a
Standard

So! Ich denke, ich habe den Fehler. Die Datei sucht er im Verzeichnis /phpkit/.... OH MANN!!!! Da hat er die Andere auch liegen. So ein Mist.... TUT MIR LEID!!! Habe im Grundverzeichnis / geschaut, nix. Und im Verzeichnis des Scriptes (/phpkit/eigenes/counterstrike/XXXXXXx.XXX). Alles ging nicht. Das er es dazwischen ablegt, wußte ich nicht. Muss ich auch erst mal verstehen. Wie bringe ich die Dateien denn wohl in mein Verzeichnis?

Ist ja so aufgebaut, mein Verzeichnisbaum zu meinem Ordner:
/phpkit/eigenes/counterstrike/XXXXXXx.XXX

muss ich dann Dateien so ansprechen?:

./eigenes/counterstrike/xxxxxxx.xxx

Ich danke dir aber, weil dein Script mir indirekt geholfen hat. Die Datei (aaa.txt) kam nämlich nicht vor in der von deinem Script erstellten Auflistung. Und er hat nur Verzeichnisse aus /phpkit aufgelistet. Darum habe ich da mal genauer geschaut. Und so auch gefunden.

ICH DANKE DIR!!!! Hatte ich aber schon richtig getippt in der Überschrift..... "Ich glaube, ich bin dumm..... "

Ich hoffe, ich darf weiterhin Fragen stellen..

Linuxei
 
Alt 20.10.2005, 20:11  
Gast
 
Beiträge: n/a
Standard

Das war nach der Fehlermeldung auch stark zu vermuten

Es gibt das sogenannte aktuelle Arbeitsverzeichnis (current working directory, cwd). Mittels getcwd kann man es abfragen, mit chdir ändern, beides beschrieben bei http://de3.php.net/dir
Relative Pfadangaben (also auch reine Dateinamen) beziehen sich immer auf das cwd.
IdR ist das cwd bei Bearbeitungsbeginn das Verzeichnis, in dem sich das (vom Webserver aufgerufene) Hauptskript befindet.
http://www.irgendw.as/skript.php -> /home/www/htdocs/skript.php -> cwd=/home/www/htdocs/
Wenn ein weiteres Skript per include/require eingebunden und abgearbeitet wird, ändert sich das cwd nicht.
include 'dir1/worker.php' bindet also /home/www/htdocs/dir1/worker.php ein aber cwd bleibt /home/www/htdocs/.
steht in worker.php also fopen('test.txt', 'r'), wird nach /home/www/htdocs/test.txt gesucht, nicht nach /home/www/htdocs/dir1/test.txt
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
fopen() - Hostabhängig? pcschröda PHP-Fortgeschrittene 5 15.11.2007 20:25
fopen php wird heruntergeladen Swen PHP Tipps 2007 4 22.04.2007 19:33
fopen() <--- Version? PCServe PHP Tipps 2006 12 14.05.2006 20:45
PHP-File generieren, grundlegende Frage! fopen richtig? PHP Tipps 2006 26 24.02.2006 14:03
fopen und zeilenumbruch notyyy PHP Tipps 2006 1 24.01.2006 16:33
Alternative zu fopen hilfe zapate PHP Tipps 2005-2 5 30.10.2005 23:38
FOPEN() Probleme PHP Tipps 2005 7 18.05.2005 18:07
fopen() - funktioniert nicht, egal was ich mache! PHP Tipps 2005 6 19.04.2005 14:15
fopen PHP Tipps 2005 8 15.03.2005 16:27
Alternative zu fopen bei ext. Dateien PHP-Fortgeschrittene 9 23.12.2004 13:05
[Erledigt] fopen +session PHP-Fortgeschrittene 1 18.11.2004 20:47
fopen funzt. aber in einem anderen ordner nicht. :( PHP Tipps 2004 13 23.09.2004 14:39
fopen() Ist das möglich? PHP Tipps 2004 3 14.09.2004 11:31
fopen mit php safe mode Rotti PHP Tipps 2004 3 04.09.2004 16:23
fopen bei *.htm dateien?? PHP Tipps 2004 3 23.08.2004 19:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fopen aktivieren, 1und1 fopen, fopen findet datei nicht, fopen 1und1, 1und1 fopen aktivieren, 1&1 fopen, 1und1 fopen php, php fopen fehler abfangen, 1&1 fopen aktivieren, php fopen 1und1, 1und1 php fopen, php fsopen, debian fopen aktivieren, warnung: server 1 konnte mani_ranks.txt nicht downloaden!!! ist der pfad zur mani_ranks.txt richtig? oder ist die mani_ranks.txt überhaupt vorhanden?, php fopen 644, konnte mani_ranks.txt nicht downloaden, php fopen geht nicht, fopen fehler abfangen, 1und1 fopen on, fopen 1&1

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.