PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit set_time_limit(3)


sinfo
07.07.2003, 10:07:23
Hallo,

(1) --->
ich möchte die Laufzeit meines Skripts beschränken. Ich habe an den Befehl set_time_limit(3) gedacht. Nun: Wenn das Skript abbricht kommt eine häßliche Fehlermeldung. Lässt sich diese unterdrücken?

(2)
Eigentlich möchte ich aber eine Datei öffnen.
$fp = fopen("$url","r");

Nun: Wenn die Datei (URL) nicht erreichbar ist, soll das Skript abbrechen. Wie mache ich das?

Für Anregungen bin ich dankbar.

c4
07.07.2003, 10:13:28
(1) Weiß nicht, ob man spezielle diese Meldung deaktivieren kann. Du kannst aber auf alle Fälle alle deaktivieren, was aber vielleicht nicht unbedingt in Deinem Sinne ist.

(2) Mach doch vorher einfach eine Abfrage, ob die Datei wirklich existiert: file_exists() Wenn nicht, dann wird halt gar nicht erst versucht sie zu öffnen.

sinfo
07.07.2003, 10:18:27
mmm. Danke. Noch nicht ganz. kann ich damit die erreichbarkeit einer url überprüfen?

if (file_exists($url)

c4
07.07.2003, 10:33:58
Prinzipiell ja. Aber man kann den Server auch so einstellen, dass er immer antwortet, dass die Datei vorhanden ist. Damit wäre Deine Abfrage sinnlos. Ich weiß aber nicht, ob das eine gängige Praxis ist. Also einfach mal probieren.

sourcecode
07.07.2003, 15:04:36
Original geschrieben von sinfo
mmm. Danke. Noch nicht ganz. kann ich damit die erreichbarkeit einer url überprüfen?

if (file_exists($url)

Nur beim eigenen Computer lässt sich prüfen, ob eine Datei existiert, nicht bei URL's.

Original geschrieben von _c_4_
Prinzipiell ja. Aber man kann den Server auch so einstellen, dass er immer antwortet, dass die Datei vorhanden ist. Damit wäre Deine Abfrage sinnlos. Ich weiß aber nicht, ob das eine gängige Praxis ist. Also einfach mal probieren.

??? Meinst du wirklich Dateien auf entfernten Computern ? Wenn ja: Wie kann man denn bei seinem Server einstellen (Apache), dass er auf solche Anfragen antwortet (entweder immer ja, oder immer nein, oder je nachdem, ob die Datei nun existiert oder nicht) ?

Dass eine Datei existiert muss trotzdem noch nicht unbedingt heißen, dass sie auch geöffnet werden kann. Naja, vielleicht zum Lesen, zum Schreiben aber z.B. nicht, wenn sie schreibgeschützt ist. Da müsste man dann erst das Attribut ändern, aber so einen Befehl gibt es doch nicht direkt in PHP ? Da wäre die Möglichkeit, dynamisch eine MSDOS-Anwendung zu generieren (*.bat), in der das Attribut zum Schreibschutz entfernt wird.

Ansonsten kannst du das ja auch so machen:

$dz = @fopen("Irgendeine Datei.txt","rb");
if (!($dz)) {
die();
}

Du kannst natürlich auch nocht bei die() eine Meldung ausgeben.

c4
07.07.2003, 15:07:21
Ich hab keine Ahnung, wie und wo man einstellen kann, das existente Dateien als nicht vorhanden ausgegeben werden können. Gibt ja noch mehr Server, als nur den Häuptling, falls dieser das nicht kann.
Wegen der Möglichkeit der Überprüfung: Also http://dbCF.de/datei.php sollte klappen, aber nichthttp://dbCF.de/index.php?topic=asd

In PHP gibt es die Funktion chmod() zum Ändern der Dateirechte.

sourcecode
07.07.2003, 15:27:36
Original geschrieben von _c_4_
In PHP gibt es die Funktion chmod() zum Ändern der Dateirechte.

Leider bewirkt sie nichts unter Windows. Gibt es auch eine solche Funktion für Windows, ohne den beschriebenen Umweg gehen zu müssen ? Klar, ich könnte natürlich auf Linux umsteigen (mach ich vielleicht auch), aber momentan ist bei mir noch Windows.

c4
07.07.2003, 15:33:35
Sollte klappen. Ein Kommentar auf php.net:It does work on Windows.
I use Win 98 with the Sambar Server.
The only chmods allowed are the 775 and 666 mod. 775 for non-writeable and 666 for writeable. The only thing is that the usergroups doesn't work.
Note: the 0 at the start doesn't work with windows. use only the decimal kind.
Have fun :)

sourcecode
07.07.2003, 16:04:16
funktioniert tatsächlich, danke !
dann ist das aber in der referenz hier falsch angegeben !