PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Welchen fehler erzeugt fopen? (http://www.selfphp.de/forum/showthread.php?t=21822)

marvinlol 20.07.2009 11:54:23

Welchen fehler erzeugt fopen?
 
Hi,

ich habe eine Abfrage in meinem Script, indem gefragt wird, ob eine .txt Datei vorhanden bez. zu öffnen ist.

Wenn die Datei vorhanden ist läuft auch alles perfekt, doch wenn die Datei nicht vorhanden ist oder einen anderen Namen hat, leitet mich das Scipt auf meine Error Seite weiter. (Die Error Seite wird von CMS ausgeführt)

Mein Script sieht so aus:

PHP-Code:

<?php

header
('Content-type: text/html; charset=ISO-8859-1');


$handle = @fopen("http:/www.url.de/datei.txt""r");


if (
$handle == NULL) {

    echo 
"geht nicht!";
}
        else {
while ( 
$inhalt = @fgets ($handle4096 ))
{
echo 
"$inhalt"
}


@
fclose($handle);
}
?>


Vielleicht weiß ja jemand von euch, welchen Fehler fopen dabei erzeugt (z.B. 404,403 o.ä) und wie man ihn umgehen kann?

Damir 20.07.2009 12:06:24

AW: Welchen fehler erzeugt fopen?
 
Hi,

also du solltest vor dem fopen erst einmal prüfen ob die Datei existiert!!!!

http://www.selfphp.de/funktionsrefer...ile_exists.php

Damir

marvinlol 20.07.2009 12:11:16

AW: Welchen fehler erzeugt fopen?
 
Meines wissens nach geht "file_exists" nicht bei externen Dateien oder?

Ich habe oben auch vergessen zu erwähnen, dass die .txt Datei auf einem externen Server liegt.

cortex 20.07.2009 12:13:49

AW: Welchen fehler erzeugt fopen?
 
beachte bitte die einordung deiner fragen ins passende unterforum. ich denke, dass

Zitat:

Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken
nicht auf dich passt. darüber hinaus habe ich mich in deinem anderen thread bereits geäussert.

[mod: verschoben]

cx

DokuLeseHemmung 20.07.2009 12:14:21

AW: Welchen fehler erzeugt fopen?
 
file_exists() arbeitet nicht über den HTTP-Wrapper.

Wenn du den Statuscode möchtest, dann soltest du dieses mal lesen:
Zitat:

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().
Aus: http://de2.php.net/manual/en/wrappers.http.php


PS:
@ ist IMMER eine schlechte Idee

marvinlol 20.07.2009 12:26:17

AW: Welchen fehler erzeugt fopen?
 
ah okay..

Kann ich den Statuscode über den header bekommen?
Wenn ja - Wie?

danke

Damir 20.07.2009 12:26:41

AW: Welchen fehler erzeugt fopen?
 
Zitat:

Zitat von marvinlol (Beitrag 129366)
Meines wissens nach geht "file_exists" nicht bei externen Dateien oder?

Ich habe oben auch vergessen zu erwähnen, dass die .txt Datei auf einem externen Server liegt.

Oh, das habe ich glatt in deinem Beispiel übersehen.....

Alternativ kannst du natürlich auch mit CURL arbeiten, da du hier sehr viele Informationen zurück bekommst...

DokuLeseHemmung 20.07.2009 12:39:56

AW: Welchen fehler erzeugt fopen?
 
Zitat:

Zitat von marvinlol (Beitrag 129369)
ah okay..

Kann ich den Statuscode über den header bekommen?
Wenn ja - Wie?

danke

Habe ich dir schon mitgeteilt !!!
Augen auf und Posting #5 nochmal aufmerksam lesen.

marvinlol 20.07.2009 12:40:58

AW: Welchen fehler erzeugt fopen?
 
Okay danke.

Die Frage ist ja jetzt, wie ich mein CMS dazu bringen kann, dass es nicht die Error Seite aufruft, sondern wie in meinem Beispiel "geht nicht" ausgibt.

Ich benutze das CMS Contenido.

Damir 20.07.2009 13:10:57

AW: Welchen fehler erzeugt fopen?
 
PHP-Code:

if (!$handle) {

    echo 
"geht nicht!";
}
        else {
while ( 
$inhalt = @fgets ($handle4096 ))
{
echo 
"$inhalt"




Alle Zeitangaben in WEZ +2. Es ist jetzt 05:06:27 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.