Script ausführen und speichern

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Du musst die quelle mit implode('', file(...)) öffnen.
Ich bin mir nicht sicher, meinst du:

Code: Alles auswählen

if (!$quelleopen = fopen($quelle, "r")) { 
ändern in

Code: Alles auswählen

if (!$quelleopen = implode('', file(fopen($quelle, "r")))) { 
?
Eine vage Vermutung wäre, dass das Öffnen der URL zu lange braucht und das Skript abgebrochen wird
Ich habe die RSS-Feed Scriptzeiten gestoppt 0,002 Sek, sowie andere Quelle mit statischen Daten genommen. Ich schließe das einfach einmal aus.
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

fopen brauchst du nicht. file schließt diese Funktion gewissermaßen mit ein.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Code: Alles auswählen

if (!$quelleopen = implode('', file($quelle)) {
         print "Kann die Datei $quelle nicht öffnen";
Habe ich das jetzt richtig verstanden?
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das sieht besser aus.
Das Implode fügt das Array aus Zeilen zu einem String zusammen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Das ist unglaublich warum will es denn nicht laufen:
Fehlermeldung:
Premature end of script headers: test1.php
Es wird jetzt nur eine simple TXT Datei angefordert:

Code: Alles auswählen

 <?php

$quelle = 'http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt';
$ziel = '/html/test/ziel.rss';

// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($ziel)) {

// Quellendatei öffnen
if (!$quelleopen = implode('', file($quelle))) {
         print "Kann die Datei $quelle nicht öffnen";

    }
    // zieldatei datei öffnen
    if (!$zielopen = fopen($ziel, "r+")) {
                         print "Kann die Datei $ziel nicht öffnen";
                         exit;
    }

                    // Schreibe Quelle in Ziel .
                    if (!fwrite($zielopen, $quelle-open)) {
                        print "Kann in die Datei $zielopen nicht schreiben";
                        exit;
    }

 print "Fertig, in Datei $ziel wurde $quelle geschrieben";

fclose($quelle);
fclose($ziel);

} else {
    print "Die Datei $ziel ist nicht schreibbar";
}
?>
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ich habe das gerade mal ausprobiert und es muss wohl an deinem Server liegen (evtl. wird URL fopen nicht unterstützt oder ist aus Sicherheitsgründen deaktiviert.). Hast du mal in deine Server-Logs gesehen ob da eine genauere Fehlermeldung ist (glaube ich zwar nicht, aber ausgeschlossen wäre es nicht).

Du schließt übrigens eigentlich die Streams die du geöffnet hast und nicht die Pfadnamen (-> die Parameter für fclose sind falsch). Daran liegt es aber nicht. Die Minuszeichen hast du auch nicht alle entfernt, du benutzt immer noch $quelle - open (open wird hier aber als Konstante aufgefasst und verursacht dabei daher nur einen Fehler der Stufe E_NOTICE).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Malzeit,

so ich habe dann nochmal das Script überarbeitet:

Code: Alles auswählen

<?php

$quelle = 'http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt';
$ziel = '/html/test/ziel.rss';

// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($ziel)) {

// Quellendatei öffnen
if (!$quelleopen = implode('', file($quelle))) {
         print "Kann die Datei $quelle nicht öffnen";

    }
    // zieldatei datei öffnen
    if (!$zielopen = fopen($ziel, "r+")) {
                         print "Kann die Datei $ziel nicht öffnen";
                         exit;
    }

                    // Schreibe Quelle in Ziel .
                    if (!fwrite($zielopen, $quelleopen)) {
                        print "Kann in die Datei $zielopen nicht schreiben";
                        exit;
    }

 print "Fertig, in Datei $ziel wurde $quelle geschrieben";

fclose($quelleopen);
fclose($zielopen);

} else {
    print "Die Datei $ziel ist nicht schreibbar";
}
?>
Die PHP.ini sagt:
[ externes Bild ]

Meine Dateienattribute passen auch:
[ externes Bild ]
Und trotzdem will es nicht funktionieren!! Verdammt
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Da kann ich nicht mehr viel zu sagen fürchte ich. Bei mir lief es wie gesagt (außer den genannten Fehlern, fclose($quelleopen); ist völlig sinnlos und wirft eine Fehlermeldung, da das alles von file übernommen wird).
Daran dürfte es aber eigentlich nicht scheitern. Das Skript sollte eigentlich klappen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“