Ankündigung

Einklappen
Keine Ankündigung bisher.

Titel auslesen - Warning: implode()

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Titel auslesen - Warning: implode()

    Dieser Kode soll Titel auslesen:

    PHP-Code:
    <?php
    $url 
    $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // liest URL aus.
    $woher "'http://$url'"// liest Titel dieser Seite aus.
    $data implode(""file($woher)); // Zeile 10 
    if (preg_match("/<title>(.*)<\/title>/i"$data
       
    $title)) { $titelzeile $title[1]; }
    echo 
    $titelzeile;
    ?>

    Warning: file('http://domain.de/site.php') [function.file]: failed to open stream: No such file or directory in site.php on line 10

    Warning: implode() [function.implode]: Invalid arguments passed in site.php on line 10

    Warum kommt Fehler?


  • #2
    möglicherweise weil die Option

    allow_url_fopen

    auf "Off" gesetzt ist ....außerdem sieht dein $woher sehr seltsam aus... reichen nicht die Double-Quotes außen herum ? lösch mal bitte die Single-Quotes innerhalb der Zuweisung bei $woher
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

    Kommentar


    • #3
      Zitat von G456676 Beitrag anzeigen
      Warum kommt Fehler?
      Bevor du dich mit Programmiersprachen beschäftigst, beschäftige dich lieber damit dich sprachlich einem Menschen korrekt mitzuteilen.

      Wir können solche Fehler vernachlässigen - der Computer kann es nicht. Und genau DAS ist dein Problem.

      PHP-Code:
      $woher "'http://$url'"
      Die einfachen Anführungszeichen werden als "zum Dateinamen" gehörend interpetiert, dadurch beginnt der Dateiname mit ' anstelle von http://. Dadurch sucht der PHP Interpreter auf dem lokalem Dateisystem und findet die Datei natürlich nicht.

      möglicherweise weil die Option

      allow_url_fopen

      auf "Off" gesetzt ist
      Dann würde eine entsprechende Meldung erscheinen das dies nicht erlaubt ist, oder zumindest ein "no suitable wrapper could be found - check allow_url_fopen in php.ini...".
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        Zitat von eagle275 Beitrag anzeigen
        möglicherweise weil die Option

        allow_url_fopen

        auf "Off" gesetzt ist ....außerdem sieht dein $woher sehr seltsam aus... reichen nicht die Double-Quotes außen herum ? lösch mal bitte die Single-Quotes innerhalb der Zuweisung bei $woher
        Ich habe die Single-Quotes (' ') gelöscht.

        PHP-Code:
        <?php 
        $url 
        $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; // liest URL aus. 
        $woher "http://$url"// liest Titel dieser Seite aus. 
        $data implode(""file($woher)); // Zeile 10  
        if (preg_match("/<title>(.*)<\/title>/i"$data,  
           
        $title)) { $titelzeile $title[1]; } 
        echo 
        $titelzeile
        ?>
        Die Seite kann nicht geladen werden.

        Kommentar


        • #5
          bau doch bitte mal in die ersten 2 Zeilen deines Scriptes da ein vernünftiges error-reporting ein
          PHP-Code:
          error_reporting(E_ALL);
          ini_set('display_errors'1); 
          übrigens könnte deine Beschreibung durchaus etwas aussagekräftiger sein .. ein "funktioniert nicht" tut es nunmal nicht
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

          Kommentar


          • #6
            Zitat von G456676 Beitrag anzeigen
            Die Seite kann nicht geladen werden.
            Dein Script stellt an sich selbst eine Anfrage via HTTP, führt sich also nochmal aus, darin befindet sich die Anfrage ja erneut und wird nochmal gestellt, in dem Scriptaufruf ist die Anfrage wieder drin und kommt nochmal... u.s.w.

            Code:
            Scriptaufruf via Browser
               ->fopen(selbes script)
                  ->fopen(selbes script)
                     ->fopen...
            Wie soll das jemals zu einem Ende kommen?
            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

            Kommentar


            • #7
              Zitat von Dark Guardian Beitrag anzeigen
              Dein Script stellt an sich selbst eine Anfrage via HTTP, führt sich also nochmal aus, darin befindet sich die Anfrage ja erneut und wird nochmal gestellt, in dem Scriptaufruf ist die Anfrage wieder drin und kommt nochmal... u.s.w.

              Code:
              Scriptaufruf via Browser
                 ->fopen(selbes script)
                    ->fopen(selbes script)
                       ->fopen...
              Wie soll das jemals zu einem Ende kommen?

              Kannst du eine Lösung anbieten?

              Kommentar


              • #8
                Wie wäre es denn mit sowas:

                PHP-Code:
                error_reporting(E_ALL);
                ini_set('display_errors'1);  

                $was 'http://example.org';
                $seite file_get_contents($was);

                echo 
                $seite
                Wenn das funktioniert, dann kannst du mit preg_match() den Titel rausholen.
                PHP-Code:
                if ($var != 0) {
                  
                $var 0;

                Kommentar


                • #9
                  Kannst du recherchieren und uns einen LösungsANSATZ präsentieren an dem wir arbeiten können?

                  Komplettlösungen -> Skriptbörse!

                  Kommentar


                  • #10
                    Zitat von G456676 Beitrag anzeigen
                    Kannst du eine Lösung anbieten?
                    Nicht das eigene Script aufrufen?

                    Oder, falls das so ist, einen Parameter anhängen und diesen Abfragn damit die Rekursion stoppt?
                    "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                    Kommentar


                    • #11
                      Zitat von Wolla Beitrag anzeigen
                      Wie wäre es denn mit sowas:

                      PHP-Code:
                      error_reporting(E_ALL);
                      ini_set('display_errors'1);  

                      $was 'http://example.org';
                      $seite file_get_contents($was);

                      echo 
                      $seite
                      Wenn das funktioniert, dann kannst du mit preg_match() den Titel rausholen.
                      So Titel wird sauber ausgegeben:
                      PHP-Code:
                      <?php 
                      error_reporting
                      (E_ALL);
                      ini_set('display_errors'1);  

                      $woher "http://example.org"// liest Titel von dieser Seite aus.
                      $data implode(""file($woher));
                      if (
                      preg_match("/<title>(.*)<\/title>/i"$data
                         
                      $title)) { $titelzeile $title[1]; }
                      echo 
                      $titelzeile;
                      ?>
                      Wie binde ich nun das ein?
                      PHP-Code:
                      $url $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

                      Kommentar


                      • #12
                        Zitat von G456676 Beitrag anzeigen
                        Wie binde ich nun das ein?
                        PHP-Code:
                        $url $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 


                        Wo einbinden? Es handelt sich um eine simple Variablenzuweisung, die kannst du überall hinschreiben.
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Zitat von G456676 Beitrag anzeigen
                          So Titel wird sauber ausgegeben:
                          PHP-Code:
                          <?php 
                          error_reporting
                          (E_ALL);
                          ini_set('display_errors'1);  

                          $woher "http://example.org"// liest Titel von dieser Seite aus.
                          $data implode(""file($woher));
                          if (
                          preg_match("/<title>(.*)<\/title>/i"$data
                             
                          $title)) { $titelzeile $title[1]; }
                          echo 
                          $titelzeile;
                          ?>
                          Wie binde ich nun das ein?
                          PHP-Code:
                          $url $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
                          Das ist die URL DEINES Scriptes, willst du deinen eigenen Titel auslesen? Falls ja beachte meinen Beitrag denn ansonsten hast du mit file_get_contents() wieder das gleiche problem wie mit file().

                          Falls du nicht weisst was ein GET Parameter ist und wie du diesen mit if abfragen kannst:
                          http://www.php.de/php-einsteiger/489...nsammlung.html
                          "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                          Kommentar


                          • #14
                            Zitat von G456676 Beitrag anzeigen
                            Kannst du eine Lösung anbieten?
                            Nicht, wenn du nicht erst mal einen klare, eindeutige und nachvollziehbare Beschreibung der zu loesenden Aufgabe lieferst.

                            Kommentar


                            • #15
                              Sorry, mit Einbinden meine ich die Variable richtig zu zuweisunen.

                              Kommentar

                              Lädt...
                              X