fgetss wertet php dateien nicht aus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fgetss wertet php dateien nicht aus

    Hallo,
    ich habe folgendes kleines Script, mit dem ich später verschiedene .php-Dateien auswerten möchte:

    PHP-Code:
    <?

    $file = "index.php";
    $fp = fopen($file,"r");
    while($zeile = fgetss($fp,2500)){
      echo $zeile;
    }
    fclose($fp);

    ?>
    Mein Problem nun ist, daß ich keinerlei Ausgabe erhalte. Ein Gegencheck mit einer beliebigen .html-Datei hingegen brachte aber das gewünschte Resultat.

    Die Funktionsbeschreibung auf php.net sagt mir, daß die Funktion fgetss eigentlich alle HTML und PHP Tags entfernen soll.
    Warum also tut sie es bei .php-Dateien nicht? Mache ich hier einen Denkfehler?

    Grüße,
    Harry

  • #2
    Mein Problem nun ist, daß ich keinerlei Ausgabe erhalte.
    Die Funktionsbeschreibung auf php.net sagt mir, daß die Funktion fgetss eigentlich alle HTML und PHP Tags entfernen soll.
    Warum also tut sie es bei .php-Dateien nicht? Mache ich hier einen Denkfehler?
    Tut sie doch offensichtlich! Wo ist dein Problem???

    Kommentar


    • #3
      Also das Problem ist, daß in der index.php, welche ich im obigen Beispiel auslese, zwischen diversen php-Anweisungen auch HTML mit Fließtext steht.

      Beispiel:

      PHP-Code:
      <?
      include irgendwas
      ?>

      <html>
      <body>

      blah blubb

      <?
      include nochwas
      ?>

      blah blubb

      </body>
      </html>
      Nach meinem Verständnis müsste ich als Ausgabe "blah blubb blah blubb" bekommen.
      Stattdessen bleibt der Screen aber leer.
      Nehme ich die php-Blöcke raus, funktioniert alles wie erwartet.

      Grüße,
      der Harry

      Kommentar


      • #4
        probier doch mal nur fgets und dann das mal probeweise ausgeben...vielleicht kommt gar nichts an? *schulter zuck*
        Und wenn es damit geht, vielleicht mal strip_tags (heißt die so? Noch nie benutzt XD) drauf anwenden, vielleicht ist ja auch ein Fehler im PHP-Code, sodass die gesamte Seite als Code angesehen wird!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von ghostgambler
          probier doch mal nur fgets und dann das mal probeweise ausgeben...vielleicht kommt gar nichts an? *schulter zuck*
          mit fgets bekomme ich die datei ausgegeben. es kommt also etwas an.


          Und wenn es damit geht, vielleicht mal strip_tags (heißt die so? Noch nie benutzt XD) drauf anwenden, vielleicht ist ja auch ein Fehler im PHP-Code, sodass die gesamte Seite als Code angesehen wird!
          wenn du einen fehler auf den zu untersuchenden seiten meinst: sehr unwahrscheinlich. obige "beispielseite" funktioniert definitiv, wenn die php-elemente entfernt werden. bleiben sie drin, wird nichts mehr zurückgegeben.

          mit strip_tags und fgets bekomme ich nun den text ausgegeben. leider sind auch alle php-anweisungen/variablen etc. mit drin.

          kann es sein, daß die funktion strip_tags, welche ja identisch sein soll mit fgetss schlichtweg nur mit html funktioniert?

          oder ist es versionsabhängig? ich arbeite mit php 4.3.9

          grüße,
          der harry
          Zuletzt geändert von h_siegel; 30.12.2004, 20:13.

          Kommentar


          • #6
            [solved]

            Hallo,
            habe nun file_get_contents() benutzt, und darauf ein strip_tags() angewendet.

            Das funktioniert einwandfrei!

            Trotzdem mein Problem damit gelöst ist, würde ich gerne erfahren, warum obiger Code versagt.

            Grüße,
            der Harry

            Kommentar


            • #7
              Re: [solved]

              Original geschrieben von h_siegel
              Hallo,
              habe nun file_get_contents() benutzt, und darauf ein strip_tags() angewendet.

              Das funktioniert einwandfrei!

              Trotzdem mein Problem damit gelöst ist, würde ich gerne erfahren, warum obiger Code versagt.

              Grüße,
              der Harry
              poste mal die richtige Datei, die du mit fgetss einliest!

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                obiges codebeispiel mit "blah und blubb" ist u.a. eine seite gewesen, welche ich im verlauf der "forschung" extra dafür konstruiert hatte.

                mit dem ganz obigen codeschnipsel wurde nur dann etwas auf dem screen ausgegeben, wenn die php-blöcke entfernt wurden. sobald an einer stelle php-code auftauchte, wurde der rest der seite unterdrückt.

                grüße,
                harry

                Kommentar


                • #9
                  Original geschrieben von h_siegel
                  obiges codebeispiel mit "blah und blubb" ist u.a. eine seite gewesen, welche ich im verlauf der "forschung" extra dafür konstruiert hatte.

                  mit dem ganz obigen codeschnipsel wurde nur dann etwas auf dem screen ausgegeben, wenn die php-blöcke entfernt wurden. sobald an einer stelle php-code auftauchte, wurde der rest der seite unterdrückt.
                  Also, dass das mit dem Code nicht funktioniert, ist klar, immerhin ist das keine richtige Include-Anweisung....wie wäre es, wenn du mal ein richtigen Test machst, und dann die Dateien postest?
                  Mit gültigem PHP/HTML-Code???

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    äh. sorry.

                    oben habe ich das ganze nur schnell hingeklappert.
                    natürlich müssten die include anweisungen korrekt ausgeschrieben werden. aber hier ging es um ein beispiel, welches du gerne OHNE die includes ausprobieren kannst. in meiner konfiguration reicht es bereits wenn <? ?> vorhanden sind, damit keine ausgabe mehr erfolgt. du kannst gerne den von mir im ersten posting benutzten code-schnipsel bei dir laufen lassen mit einer datei deiner wahl als target und dann mal schauen, was dabei rum kommt. bei mir hat es mit genau keiner (von ca. 100) php-datei funktioniert.
                    html-dateien, welche auch auf dem server liegen, wurden, wie gesagt, fehlerfrei und wie erwartet der funktion entsprechend auf dem screen ausgegeben.

                    davon ab, sollte es der fgetss funktion eigentlich ziemlich schnurz sein, was innerhalb der php blöcke steht, da ja alles, zwischen den tags steht, automatisch ignoriert wird, right?

                    grüße,
                    der harry
                    Zuletzt geändert von h_siegel; 02.01.2005, 13:58.

                    Kommentar


                    • #11
                      Also bei mir hat weder die eine, noch die andere Methode das gebracht, was ich mir erhoffte....das in der Manual, kann auch ein Fehler sein, in der Kopfzeile steht auch nur, dass die Funktion HTML-Tags entfernt, die PHP-Tags stehen nur weiter unten.
                      Bei mir hat jedoch die strip_tags-Funktion auch nicht restlos alles an PHP-Tags entfernt, bzw. nicht so wie ich wollte (das End-Tag war irgendwie noch da und der Code auch, nur das "Start-Tag" fehlte)

                      Ich denke du solltest dich nicht auf diese Funktionen verlassen

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        hallo,
                        wie gesagt, ein file_get_contents mit darauf folgendem strip_tags bringt dann genau das, was gewollt war: aus der datei werden alle html-tags und auch alle php-tags entfernt, übrig bleibt der reine fließtext.
                        bin ich hier über einen fehler in php gestoßen? nun, wenn keiner eine antwort weiß, lege ich das teil mal zu den akten...

                        grüße,
                        der harry

                        Kommentar

                        Lädt...
                        X