Wikipedia-Seiten prüfen

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

  • Wikipedia-Seiten prüfen

    ich bin php-neuling !

    ich versuche schon seit einigen tagen folgendes problem
    zu lösen :


    eine wikipedia-datei zb. http://de.wikipedia.org/wiki/Berlin soll
    überprüft werden , ob sie noch unter diesem namen vorhanden
    ist .

    ist sie vorhanden dann ausgabe: datei ist vorhanden !

    ist sie nicht vorhanden ausgabe : datei ist nicht vorhanden !

    ich hoffe , dies ist mit php möglich .

    dank vorab !!!!!!!

  • #2
    Die Wikipedia sendet dir bei einem nicht vorhandenen Lemma einen 404-Header. Den kann man natürlich mit PHP auswerten. Stichwort wäre hier zum Beispiel curl.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Das dürfte ziemlich einfach sein. Wikipedia schickt bei Seiten dies es nicht gibt (z.B. http://de.wikipedia.org/wiki/Berlin2) einen 404 Header mit. Deshalb kann dir die Response ziemlich egal sein.

      Also: Guck dir cURL (http://ch.php.net/curl) an um dir damit die Headers zu holen. Danach validierst du den Statuscode: 200 = Artikel existiert, 404 = Artikel existiert nicht. Eventuell könntest du vor dem Request auch noch überprüfen ob Wikipedia überhaupt erreichbar ist, indem du einen Artikel auf den Statuscode 200 überprüfst, der ganz bestimmt existieren sollte.
      Mein PHP Blog

      Kommentar


      • #4
        Original geschrieben von ModestLife
        Eventuell könntest du vor dem Request auch noch überprüfen ob Wikipedia überhaupt erreichbar ist, indem du einen Artikel auf den Statuscode 200 überprüfst, der ganz bestimmt existieren sollte.
        Oder einfach die Wikipedia Startseite der jeweiligen Sprache. Das kann aber auch von unterschiedlichen Servern kommen. Eigentlich sollte curl aber auch selbst mitteilen dass der Server nicht erreichbar ist bzw ein Timeout aufgetreten ist.

        Kommentar


        • #5
          danke für die tollen antworten !

          ich bin pnp-neuling.

          habe in diesem forum auf etwas bessere hilfe gehofft !

          aber trotzdem danke für die mühe !!!!

          Kommentar


          • #6
            Original geschrieben von hds26846
            danke für die tollen antworten !
            ...
            habe in diesem forum auf etwas bessere hilfe gehofft !
            was hast du erwartet? fertigen code?
            Original geschrieben von hds26846
            aber trotzdem danke für die mühe !!!!
            ist das jetzt ernst gemeint oder sarkastisch?

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Hatte am Anfang auch immer gohofft fertige codes zu bekommen ;-) Aber so musst du dich damit mehr auseinandersetzten und lernst nach und nach immer mehr php...

              Die Hilfestellung ist gut, die dir hier gegeben wird. Wenn Du fertige Codes haben willst, musst du wen engagiere.

              Kommentar


              • #8
                Original geschrieben von hds26846
                danke für die tollen antworten !

                ich bin pnp-neuling.

                habe in diesem forum auf etwas bessere hilfe gehofft !

                aber trotzdem danke für die mühe !!!!
                Naja, das ist hier halt so, dass manche gerne Antworten in der Art "Das Problem ist lösbar" oder "Ich hab das Problem schonmal gehabt, du schaffst das auch" verfassen. ;-)

                Dieses Forum ist für dich kostenlos. Und wie sagte schon meine Omma? Genau: Was nix kostet, ist auch nix. ;-)

                Prinzipiell kann PHP, wenn es richtig eingestellt ist, "entfernte Dateien" ganz einfach mit file_get_contents() laden. Dazu müssen aber die "geheimnisvollen" URL-fopen-Wrapper aktiviert sein. Und mit file_get_contents() lädt dein Script auch immer die komplette Datei vom Wikipedia-Webserver runter. Also nix HTTP-Statuscode prüfen. In dem Fall müsstest du im Quelltext der Datei nach einem typischen Zeichenmuster schauen, welches bei der "Artikel-nicht-gefunden"-Seite immer auftaucht.

                Die elegantere (und Traffic-sparendere) Lösung ist natürlich die, die nur die HTTP-Statuscodes abfragt. Dazu bedarf es aber nicht nur ein wenig HTTP-Hintergrundwissen. Dein PHP muss auch bestimmte Erweiterungen installiert oder bestimmte Funktionen erlaubt haben.

                Kuck erstmal, ob deine PHP-Installation was mit CURL anfangen kann:

                PHP-Code:
                echo extension_loaded('curl') ? 'Curl geht!' 'Mist!'
                Und wenn nicht, ob du wenigstens fsockopen() verwenden darfst:

                PHP-Code:
                echo function_exists('fsockopen') ? 'fsockopen() scheint erlaubt zu sein.' 'Verdammte Scheiße!'
                Im Falle von "kein CURL", aber "fsockopen() geht", melde dich bitte nochmal. Da kann ich dir weiterhelfen.
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar


                • #9
                  [PHP5]

                  danke fireweasel !

                  ich habe mich etwas geärgert , weil einem php-neuling diverse
                  begriffe um die ohren gehauen werden ohne etwas mehr hintergrundinformation .

                  deine antwort hört sich aber gut an !

                  der test ergab , das fsockopen() vorhanden ist .

                  curl ist leider nicht installiert .

                  ich hoffe auf weitere nachrichten

                  Kommentar


                  • #10
                    Du wirst hier halt ohne selber Mitzuarbeiten keinen Code vorgeworfen bekommen. Wenn du konkrete Versuche machst, dein Ziel zu erreichen, wirst du zwangsläufig irgend einen Quelltext produziert haben. Den kannst du zeigen und da helfe ich gerne. Vorkauen werde ich aber nichts.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      es geht mir nicht um ein fertigen programmcode .

                      aber folgende antworten bauen einen neuling nicht auf !!


                      Die Wikipedia sendet dir bei einem nicht vorhandenen Lemma einen 404-Header. Den kann man natürlich mit PHP auswerten. Stichwort wäre hier zum Beispiel curl.



                      Das dürfte ziemlich einfach sein. Wikipedia schickt bei Seiten dies es nicht gibt (z.B. http://de.wikipedia.org/wiki/Berlin2) einen 404 Header mit. Deshalb kann dir die Response ziemlich egal sein. Also: Guck dir cURL (http://ch.php.net/curl) an um dir damit die Headers zu holen. Danach validierst du den Statuscode: 200 = Artikel existiert, 404 = Artikel existiert nicht. Eventuell könntest du vor dem Request auch noch überprüfen ob Wikipedia überhaupt erreichbar ist, indem du einen Artikel auf den Statuscode 200 überprüfst, der ganz bestimmt existieren sollte.

                      Kommentar


                      • #12
                        Ich würde sagen dass war außergewöhnlich freundlich

                        Schlage nach was du nicht kennst und lerne Grundlagen bevor du mit so etwas anfängst. Kann man nicht oft genug sagen.

                        Kommentar


                        • #13
                          Original geschrieben von hds26846
                          es geht mir nicht um ein fertigen programmcode .

                          aber folgende antworten bauen einen neuling nicht auf !!
                          [...]
                          Was erwartest du denn? Alles weitere wäre Programmcode. Hast du Fragen zu einzelnen Fahcbegriffen, dann stelle diese Fragen. Du bist hier der Bittsteller, du willst etwas von uns. Ich muss mir keine Gedanken machen, was genau du erreichen willst, wo deine Stäreken und Schwächen liegen und wie du das am besten umsetzen kannst. Ich helfe dir nur, wenn du etwas konkretes nicht verstehst. Leb damit, oder hoffe, dass dir jemand alles vorkaut.
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar


                          • #14
                            Original geschrieben von lennart
                            Ich würde sagen dass war außergewöhnlich freundlich
                            Huch! Da möchte ich aber gar nicht wissen, wie die unfreundliche Antwort ausgefallen wäre.
                            Sicher, wer sich halbwegs auskennt, wird mit der Auskunft "Prüfe den Statuscode der HTTP-Antwort" zurechtkommen. Aber wer sich halbwegs mit PHP und HTTP auskennt, stellt auch garn nicht solche Fragen. Und wir haben alle mal klein angefangen. Ich habe mich über jedes Quellcodebeispiel gefreut, ganz besonders, wenn noch verständliche Erläuterungen dabei waren. Fsockopen() und alles, was da so dazugehört, ist keine leichte Materie für Einsteiger.

                            Sooo, und jetzt zu dir hds26846 ...
                            (Was'n das für'n komisches Pseudo?)

                            Das Problem sind die Grundlagen. Wie meine beiden Vorposter so treffend bemerkten, ist es ausgesprochen hilfreich, wenn man über entsprechende Basiskenntnisse verfügt. Falls du die nicht hast, empfehle ich dir, dich zuerst mal schlau zu machen, wie das mit dem HTTP und der Kommunikation mit zwischen Client und (Web-)Server so abläuft (Request und Response). Durchaus brauchbar ist hierzu der (deutschsprachige) Wikipedia-Artikel über HTTP.

                            Weiterhin brauchen wir das PHP-Handbuch zu folgenden Funktionen:
                            fsockopen()
                            fwrite()
                            fread()
                            fclose()

                            Du solltest auch einen lokalen Webserver zur Verfügung haben, mit dem du dein Script testen kannst.

                            ... und für den Anfang hab ich dir noch ein fertiges Beispiel-Script ergoogelt, das in etwas das macht, was du möchtest -- eine HTTP-Ressource auf ihr "Vorhandensein" prüfen:

                            phpLinkCheck.php

                            Morgen kucken wir dann mal an einem anderen Script, wie ich das Problem gelöst hätte.
                            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                            Kommentar


                            • #15
                              Und in Wirklichkeit baust du hier das PHP-Manual nach. Die Querverweise, die Code-Beispiele - kann man auch alles direkt im Handbuch einsehen. Stichworte wurden bereits geliefert. bei konkreten Problemen wird gerne geholfen. Das Mitdenken wir hier aber keinem abgenommen.
                              [FONT="Helvetica"]twitter.com/unset[/FONT]

                              Shitstorm Podcast – Wöchentliches Auskotzen

                              Kommentar

                              Lädt...
                              X