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:
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.
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
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=
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
Kommentar