Zur Navigation

ö, ä, ü, ß im Hotelnamen per $_POST oder $_GET senden

1 schurik

Hallo Jörg,

ich war hier schon früher sehr oft und bekamm alle Fragen beantwortet. ( es gibt auch andere )

Hab wieder eine Frage zu PHP.

Versuche mit google maps die Hotels auf einer Karte anzuzeigen.

Für die Koordinaten für die google map, verwende ich Hotel - Adressen aus eine db die ich mit einem Skript . Das geht auch supper.

Aber Adressen der Namen die die Umlaute oder "ß" enthalten werden per $_POST oder $_GET nicht gesendet, stattdessen werden die Umlaute in ein Viereck umgewandelt. Google findet die Adresse dann nicht.

Was mache ich da falsch? Oder gehts anders?

Ich würde am liebsten alle Umlaute in "ae", "ue", "oe" umschreiben.

Bitte, ein kleinen Denanstoß!

Danke, Danke

schurik x


Hier kann mann so ein Beispiel sehen

z. B. Hotel Weinmichel in Darmstadt bei Frankfurt

http://www.2muchrooms.com/dsp_hotel_homepage_show.php?hotel_ID=1916&detail_site=details_anfahrt&backaction=detailsl

18.02.2007 19:50

2 Rudy

Verwende die Funktion urlencode, um z.B. den Straßennamen in den Parametern von googlemap.php zu übergeben.

18.02.2007 20:14

3 Jörg Kruse

Hallo schurik,

das Problem rührt wahrscheinlich daher, dass die Seite, auf der sich die Links zur Googlemap befinden, den Charset "iso-8859-1" verwenden, das Iframe mit der Googlemap dagegen "utf-8". Die codierten Sonderzeichen können dann nicht sinnvoll decodiert werden. Ich würde die Adressdaten vor der Übergabe über GET oder POST (und vor einem url_encode()) mit utf8_encode() behandeln

Edit: hatte noch nicht gemerkt, dass Rudy in der Zwischenzeit geantwortet hat. Vielleicht reicht auch schon das von ihm vorgeschlagene url_encode() - ansonsten meinen Lösungsweg versuchen

18.02.2007 20:19 | geändert: 18.02.2007 20:23

4 schurik

ok danke,

wie immer sehr schnell hier.

Bin schon dabei am urlencode

18.02.2007 20:42

5 schurik

Hallo Jörk und Rudy, danke noch mal. Das funktioniert jetzt.

Hab mit utf8_encode() vorencodiert dann mit urlencode(), so läuft das.
( aber ich muß GET oder POST nicht wieder decodieren, oder ? )


Leider geht das noch nicht bei allen Adressen:
Strassen die "-" enthalten ( Friedrich-Naumann-Strasse ), werden vom google maps auf meiner Site nicht gefunden.

Könte ich mit so einem Skript "-" entfernen?:
Müsste ich nur erwetern?

/* parses url_string and returns array (version 0.1) */
function url_param($str)
{
  /* $str = urldecode($str); done by php (or webserver?) */
  $str1 = explode('&', $str);
  $i = 0;
  while ($i < count($str1))
  {
    $str2 = explode('=', $str1[$i++]);
    if (isset ($str2[1]))
      $params[$str2[0]] = $str2[1];
  }
  return $params;
} 


Leider wüste ich nicht wie ich hier was mache.

oder gehts anders?


19.02.2007 20:23

6 Jörg Kruse

Bindestriche könntest du mit solch einer Funktion durch etwas anderes ersetzen oder auch entfernen:

function replacehyphens($str, $replace)
{
    $str = str_replace('-', $replace, $str);
    return $str;
}

$str = replacehyphens($str, '');

( aber ich muß GET oder POST nicht wieder decodieren, oder ? )

Das geschieht von alleine

19.02.2007 20:44 | geändert: 19.02.2007 20:44

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]