Ergebnis 1 bis 8 von 8

Thema: Zeichenersetzung in PHP funzt nicht

  1. #1
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Zeichenersetzung in PHP funzt nicht

    Hallo,
    ich möchte eine kleine Fkt. schreiben, die mir nach meinen Regeln einen String Normalisiert. So soll z.B. aus "Die Bäume" durch die Fkt. der String "die_baeume" zurückgeliefert werden.

    Das Ersetzen aller Zeichen die *nicht* a-z0-9 entsprechen klappt per preg_replace schon gut. Jedoch scheint keine der String-Ersetzungsfunktionen mir die deutschen Umlaute zu ersetzen.

    Mein Code sieht aktuell so aus:
    Code:
    <html>
    <head>
    <title>normalize string -Test</title>
      <meta http-equiv="content-type" content="text/html; utf-8">
    </head>
    <body>
    <?
      function normalizeString&#40;$input&#41; &#123;
          /*  return a normalized string equivalent of the given string
          */
          $dtUmlaute  = array&#40;"ä",  "ö",  "ü",  "ß",  "e"&#41;;
          $altUmlaute = array&#40;"ae", "oe", "ue", "ss", "#"&#41;;
          $normUmlaute = array&#40;"ä" => "ae", "ö" => "oe"&#41;;
          // $input      = str_replace&#40;$dtUmlaute, $altUmlaute, strtolower&#40;$input&#41;&#41;;
          $input      = strtr&#40;strtolower&#40;$input&#41;, $normUmlaute&#41;;
          $pattern    = "/&#91;^&#91;a-z0-9&#93;/i";
          return preg_replace &#40;$pattern, '_', $input&#41;;
      &#125;
      //-------------------------
    
      if &#40;!isset&#40;$_POST&#91;'sended'&#93;&#41;&#41; &#123;
     ?>
     <form action="" method="post">
        <input name="input" size="35">
        <input name="sended" type="hidden" value="1">
        <input type="submit" value="normalize">
     </form>
     <?
     &#125;
     else &#123;
        system&#40;"locale -a"&#41;;
        setlocale&#40;LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'&#41;;
        $normalizedString = normalizeString&#40;$_POST&#91;'input'&#93;&#41;;
        echo $normalizedString;
     &#125;
    ?>
    </body>
    </html>
    &#40;
    Was mach ich also falsch?

    Torty
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    "Carpe Diem" powered by positiv Feelings

  2. #2
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Moin
    Probier mal folgendes.
    Code:
    function normalizeString&#40;$input&#41; &#123;
        $search  = array &#40;'ä', 'ö', 'ü', 'ß'&#41;;
    		$replace = array &#40;'ae', 'oe', 'ue', 'ss'&#41;;
    		$str  = str_replace&#40;$search, $replace, strtolower&#40;$input&#41;&#41;;
        $pattern    = "/&#40;&#91;^0-9a-z&#93;&#41;/i";
        return preg_replace &#40;$pattern, '_', $str&#41;;
      &#125;

  3. #3
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    man gucke sich dafür auch mal die funktion..

    strtr() an

  4. #4
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ähmmm...steh ich grad auf dem Schlauch oder habt ihr mir nochmal beide Varianten genannt, die ich in meinem Bsp. oben schon als nicht funktionierend gezeigt habe?

    Torty
    "Carpe Diem" powered by positiv Feelings

  5. #5
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Ja, haben wir, wenn auch etwa anders.
    Von meiner Version ist bei dir eine Zeile ausgeklammert, ohne die das nichts wird.
    Wenn die Zeile drin ist, geht es jedoch einwandfrei (Bei mir jedenfalls).
    Funktioniert einwandfrei.
    Da muss irgendwas bei dir im EInbau nicht klappen, oder evtl. was an deiner PHP Version nicht stimmen.

  6. #6
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Die auskommentierte Zeile sollte nur zeigen, dass ich beide Varianten probiert habe.

    Torty
    "Carpe Diem" powered by positiv Feelings

  7. #7
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ok, nur zur Sicherheit:
    Was kommt bei dieser Funktion bei euch raus, wenn
    $input = 'Die Bäume'
    ist?

    Code:
      function normalizeString2&#40;$input&#41; &#123;
          /*  return a normalized string equivalent of the given string
          */
          $dtUmlaute    = array&#40;"ä",  "ö",  "ü",  "ß"&#41;;
          $altUmlaute   = array&#40;"ae", "oe", "ue", "ss"&#41;;
          $normUmlaute  = array&#40;"ä" => "ae", "ö" => "oe"&#41;;
          $input        = strtolower&#40;$input&#41;;
          $input        = strtr&#40;$input, $normUmlaute&#41;; 
          $input        = str_replace&#40;$dtUmlaute, $altUmlaute, $input&#41;;
    
          // remove none-alphanumerical chars
          $input      = preg_replace &#40;"/&#91;^&#91;a-z0-9&#93;/i", '_', $input&#41;;
          // remove multiple _-chars &#40;if more then 1 _ -> remove it&#41;
          $input      = preg_replace &#40;"/_&#123;2,&#125;/i", '_', $input&#41;;
          
          return $input;
      &#125;
      //-------------------------
    Thx.
    Torty
    "Carpe Diem" powered by positiv Feelings

  8. #8
    Azubi(ne)
    Registriert seit
    07.01.2007
    Ort
    Hamburg
    Beiträge
    59
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    die_baeume
    kommt bei funpic raus

Ähnliche Themen

  1. Diskettenklaufwerk funzt nicht!!!!
    Von ZOCKER2007 im Forum Computer - Internet Forum
    Antworten: 2
    Letzter Beitrag: 18.05.2007, 20:29
  2. Preloader funzt nicht...
    Von calvin_237 im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 23.02.2007, 23:22
  3. verlinkung funzt nicht !
    Von webcool im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 11.01.2007, 16:11
  4. wordwrap funzt nicht :\
    Von gelöschter User im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 11.01.2007, 14:09
  5. IMG-Tag funzt nicht
    Von Romi im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 08.05.2003, 10:44

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •