Ankündigung

Einklappen
Keine Ankündigung bisher.

file_get_contents error

Einklappen

Neue Werbung 2019

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

  • file_get_contents error

    PHP-Code:
    $url 'www.example.com';
        function 
    GetBetween($content,$start,$end,$number){
            
    $r explode($start$content);
            if (isset(
    $r[$number]))
            {
                
    $r explode($end$r[$number]);
                return 
    $r[0];
            }
            return 
    '';
        }
        
        echo 
    GetBetween(file_get_contents($url), '<div class="name">''</div>'1).'<br>'
    Das Script soll Informationen der angegebenen Seite(n) auslesen, in diesem Fall die Variable $url.
    Das Problem ist, ich möchte die Funktion array benutzen, damit ich nicht alles 20x machen muss.


    PHP-Code:
    $url = array('www.example1.com''www.example2.com''www.example3.com'); 
    Leider klappt das nicht so ganz, denn ich kriege diesen Error:
    PHP-Code:
    Warningfile_get_contents() expects parameter 1 to be string, array given in 
    Was ich noch sagen wollte, die Seite braucht etwas lange zum laden.

  • #2
    Eine Lösungsmöglichkeit: foreach.
    Windows Server gehören NICHT ins Internet!

    Dildo? Dildo!

    Kommentar


    • #3
      Eben darauf gekommen hat auch gut geklappt, Problem ist aber, dass es so lange dauert bis es lädt.
      Gibt es da auch eine Möglichkeit?

      Kommentar


      • #4
        jemand ne idee?

        Kommentar


        • #5
          Was genau denkst du denn was man da machen könnte? Das Script braucht eben seine Zeit, alle URL's abzurufen, da lässt sich nichts dran drehn.
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #6
            Würde es den keine Möglichkeit geben es irgendwie schneller zu machen?
            Oder, dass Script nur alle 10 Minuten aktualisieren.

            Kommentar


            • #7
              Zitat von RewriteRule Beitrag anzeigen
              Würde es den keine Möglichkeit geben es irgendwie schneller zu machen?
              Oder, dass Script nur alle 10 Minuten aktualisieren.
              Ja gibt es. Arbeite mit Sockets.

              Kommentar


              • #8
                Nutze [man]curl[/man] und multi-requests. Die sind parallel. Vergess das mit den Sockets, es sei denn du willst in den nächsten 4 Monaten aufgrund von Fingerbrüche das popeln einstellen.
                [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                Kommentar


                • #9
                  Zitat von tr0y Beitrag anzeigen
                  Nutze [man]curl[/man] und multi-requests. Die sind parallel. Vergess das mit den Sockets, es sei denn du willst in den nächsten 4 Monaten aufgrund von Fingerbrüche das popeln einstellen.
                  Danke ich werde es mir genauer anschauen, eine Frage hätte ich noch.
                  Wie genau könnte ich die Seite so abfragen, dass er prüft ob ein Tag wie z.B. <strong>Inhalt</strong> existiert?

                  Kommentar


                  • #10
                    http://de1.php.net/manual/de/book.dom.php
                    Windows Server gehören NICHT ins Internet!

                    Dildo? Dildo!

                    Kommentar


                    • #11
                      Zitat von RewriteRule Beitrag anzeigen
                      Oder, dass Script nur alle 10 Minuten aktualisieren.
                      Du solltest überlegen, ob es nötig ist, bei jeden Seitenaufruf alles abzugrasen.
                      Man könnte die Informationen cachen und abhängig vom Zeitstempel nur dann neu einlesen, wenn neue Informationen zu erwarten sind.

                      Kommentar


                      • #12
                        Gibt es eine andere Möglichkeit?

                        Kommentar


                        • #13
                          DOM + XPath ist die schnellste Variante ( schnell === einfach zu entwickeln ). Du kannst dir auch das Kaffeetrinken versauen indem du dir mit Reguläre Ausdrücke die Finger brichst.
                          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                          Kommentar


                          • #14
                            Reguläre Ausdrücke scheren sich nunmal nicht um den Strukturellen Aufbau einer HTML-Seite .. für sie ist alles Text

                            wenn du per regex zum Beispiel nach <div suchst, schlägt er beim ersten öffnenden Div-Tag zu ... und wenn du dann bei </div Aufhören willst - hört der regex auch beim ersten gefundenen </div auf - nur gehört dieses </div mit höchster Wahrscheinlichkeit NICHT zu dem öffnenden <div , sondern zu einem viel später geöffneten

                            Wie gesagt, regex kann keine Struktur interpretieren . das kann dafür DOM
                            [Quote=nikosch]
                            So glatt kann doch wirklich keiner sein.[/quote] :roll:

                            Kommentar


                            • #15
                              Zitat von RewriteRule Beitrag anzeigen
                              Gibt es da auch eine Möglichkeit?
                              Zitat von RewriteRule Beitrag anzeigen
                              jemand ne idee?
                              Zitat von RewriteRule Beitrag anzeigen
                              Würde es den keine Möglichkeit geben es irgendwie schneller zu machen?
                              Oder, dass Script nur alle 10 Minuten aktualisieren.
                              Zitat von RewriteRule Beitrag anzeigen
                              Gibt es eine andere Möglichkeit?
                              Du hast bereits Hinweise auf multi_curl zum Fetchen und DOM zum Untersuchen von Inhalten erhalten - das sind beides "best practice" Lösungen für dein Problem.

                              Es wird nicht besser durch noch häufigeres Nachfragen, ob es noch andere Möglichkeiten gibt. Ja, die gibt es vermutlich im Dutzend, was aber nichts daran ändert, das die vorgeschlagenen Ansätze besser für die Lösung geeignet sind, als die Wege, die hier noch nicht vorgeschlagen worden sind.

                              Wo soll also diese Fragestunde hinführen?
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X