str_replace funktioniert nicht in extern eingeladenen Funktionen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • str_replace funktioniert nicht in extern eingeladenen Funktionen

    Folgendes Problem:
    Habe einen String, z.B. "ölli macht mölli zu tölli"

    Dann hab ich eine Datei namens "functions.php", in der folgende Funktion steht:
    PHP Code:
    function umwandeln($text)
    {
    $text str_replace("ö""OO"$text);
    // testhalber wandle ich auch andere Buchstaben, die keine Umlaute sind
    $text str_replace("a""AA"$text);
    return 
    $text;

    Die Datei liegt im Verzeichnis "include"

    Dann habe ich eine Datei "test.php", in der folgendes steht:
    PHP Code:
    require "include/functions.php";
    echo 
    umwandeln("ölli macht mölli zu tölli"); 
    Heraus kommt dabei "ölli mAAcht mölli zu tölli".

    Egal was ich auch versuche, die Umlaute werden in einer extern geladenen Funktion nicht umgewandelt.

    Kurios: schreibe ich die Funktion in die Datei test.php (also direkt vor den Aufruf ohne Inkludieren), funktioniert alles perfekt (es kommt also "OOlli mAAcht mOOlli zu tOOlli" heraus)

    WARUM VERDAMMT? Ich bin mit meinem Latein am Ende, habs schon versucht mit PHP5 und PHP4, jedes Mal das selbe Ergebnis: lade ich die Funktionsdatei, werden beim Umwandeln die Umlaute ignoriert, schreib ich die identische Funktion vor den Aufruf direkt, funktioniert alles.
    Habe auch schon
    PHP Code:
    $loc_de setlocale (LC_ALL'de_DE@euro''de_DE''de''ge''german'); 
    gesetzt, ohne Erfolg.

    Ich denke, es muss an der Konfiguration des Servers liegen, ist hier lokal mein Testserver. Hab auch schon versucht, eine Einstellung in der Richtung zu finden, aber ebenfalls ohne Erfolg.

    HELP!!!
    lG
    Bernie
    Last edited by deltacon; 08-03-2006, 12:18.

  • #2
    Hi,

    du benutzst in der Funktion entweder die eine oder die andere zeile oder?
    PHP Code:
    $text str_replace("ö""OO"$text);
    $text str_replace("a""AA"$text); 
    In Flames - Pinbal Map
    Becoming the Archetype - No Fall Too Far
    Pantera

    Comment


    • #3
      Hi!

      Nein, ich verschwende nur keine Variablen.
      Du kannst es auch umdrehen:
      PHP Code:
      $text str_replace("a""AA"$text);
      $text str_replace("ö""OO"$text); 
      -> gleiches Ergebnis

      Oder du kannst auch jedes Mal eine neue Variable vergeben:
      PHP Code:
      $text1 str_replace("a""AA"$text);
      $text2 str_replace("ö""OO"$text1);
      return 
      $text2
      -> gleiches Ergebnis
      Last edited by deltacon; 08-03-2006, 12:33.

      Comment


      • #4
        muss wirklich am server liegen, habe soeben bei mir getestet und funktioniert gut.

        Apache/1.3.27 (Linux/SuSE)
        PHP/4.3.4
        text/html;charset=iso-8859-1
        IE 6.0
        In Flames - Pinbal Map
        Becoming the Archetype - No Fall Too Far
        Pantera

        Comment


        • #5
          Fehler gefunden - Functions Datei Kodierung schuld

          Muss mich ja schon fast schämen! Nachdem ich nun fast geschlagene 2 Std. herumkonfiguriert habe, ist mir nun doch noch ein Geistesblitz gekommen.

          Das Problem war die Datei functions.php, die von meinem Editor in UTF-8 kodiert war.

          Kodierung der Datei auf ANSII umgestellt -> läuft!!!

          2 Std. für so einen schwachsinnigen Fehler...

          Comment

          Working...
          X