HTTP_REFERER und Google

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

  • HTTP_REFERER und Google

    Hallo in die Runde,
    nach längerer Abstinenz hier im Forum hab ich mal wieder ein Problem, an dem ich knabbere und einfach nicht weiter komme.
    Hoffentlich könnt ihr mir helfen, bisher hat das ja immer wunderbar geklappt

    Ich weiß nicht inwieweit sowas schon gemacht wurde, habe jedenfalls nix als Grundlage benutzt, sondern mir das soweit selbst ausgekaspert, deswegen erzähl ich euch erstmal die "Vorgeschichte":
    Ich bastel gerade an einer speziellen Besucherstatistik, die anhand des HTTP_REFERER's Leute rauspickt, die über ein x-beliebiges Google auf die Seite gefunden haben. Es interessieren nur die, die wirklich von Google kommen, und 100prozentige Genauigkeit ist auch nicht verlangt (ich weiß, mitm HTTP_REFERER zu Hantieren hat so seine Haken).

    Jedenfalls, der Referer-String wird auseinandergenommen und entsprechende Statistiken in eine MySQL-DB geschrieben, z.B. von welchem Google der User kommt, die Art der Suche, die er benutzt hat ("normale" Textsuche oder Bildersuche) usw.

    Diese Dinge klappen wunderbar, nun isses in meinem Fall aber noch interessant, welche Suchworte denn benutzt worden, weil die ja auch im String stehen, hinter dem Parameter "q=".

    Ok, also hab ich nun den String, der hinter q steht, der Rest ist weggeschnitten.
    Jetzt würd ich den gern noch in einzelne Suchwörter aufteilen, diese dann wiederum speichern (bei Vorhandensein entsprechend einen Zähler in der DB updaten ).

    Ansich auch keine große Sache, wäre da nicht mein Problem: Umlaute, unter Umständen auch andere Sonderzeichen.

    Wenn ich im Google nach "glühwein rezept erzgebirge" suche, steht dann in der Adresszeile:

    PHP-Code:
    http://www.google.de/search?hl=de&q=gl%C3%BChwein+rezept+erzgebirge&btnG=Suche&meta= 
    Man beachte, das ü in "glühwein" wird durch %C3%BC ersetzt. Zwei hex-codierte Zeichen?
    Lass ich mir die später ausgeben, ist das solcher Kauderwelsch: ü

    Wie kann ich das wieder in einen ASCII-Umlaut konvertieren? Wenn es wenigstens der "richtige" Hex-Code für das ü wäre...den zu konvertieren ist ja kein Problem. Aber zwei Zeichen, und dann auch noch solche Exoten, sagen mir leider gar nix.

    EDIT:
    Hm, ist das vielleicht UTF-8 codiert? Bin ich grad beim googeln drauf gestoßen...dummerweise hab ich mich damit noch so gut wie gar nicht befasst.


    Dazu sei noch gesagt, ich realisiere die ganze Chose mit Perl, muss aber nichts heissen, oder? Das ü wird ja schon in die zwei Hex-Werte umgeschrieben, wenn man das Google-Suchformular abgeschickt hat.

    Hoffe ihr könnt mir helfen, wenn noch zusätzliche Angaben benötigt werden, mich einfach wissen lassen


    Lodi
    Zuletzt geändert von Lodi; 03.12.2004, 14:13.
    "...vielleicht stehe ich vor dir und du erkennst mich nicht. Spielt das eine Rolle? Wir sah'n ins gleiche Licht..."

  • #2
    utf8_decode(urldecode($value))
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Also in PHP heißt die Funktion, die dir helfen würde urldecode bzw. urlencode - Die gibt's aber bestimmt auch für Perl:
      hopka.net!

      Kommentar


      • #4
        Offenbar gibts die nicht in Perl

        Finde überall nur Subroutinen zum Selberanlegen, und die ersetzen einfach fröhlich die zwei Hex-Werte durch diese kryptischen Zeichen, wie ich sie schon kenne.

        Ich hasse diesen Perl-Lurks, aber ich muss nun mal damit arbeiten. Gibts denn da net so'n Manual wie für PHP, wo man mal alle Befehle drin aufgelistet hat? Jedes Mal diese Sucherei *stöhn*

        EDIT:
        Also offenbar ist das UTF-8. Hab den Charset meines Test-Ausgabedokuments mal entsprechend geändert, und siehe da, die Zeichen werden korrekt ausgegeben. Aber das bezieht sich ja nur auf die Ausgabe auf der Seite, nicht auf den Variableninhalt bzw. das, was dann in der DB landet. Ich finde unter Perl einfach keinen entsprechenden Befehl zum Konvertieren.
        Zuletzt geändert von Lodi; 03.12.2004, 15:14.
        "...vielleicht stehe ich vor dir und du erkennst mich nicht. Spielt das eine Rolle? Wir sah'n ins gleiche Licht..."

        Kommentar

        Lädt...
        X