str_replace funktioniert nicht in extern eingeladenen Funktionen

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

  • 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
    Zuletzt geändert von deltacon; 08.03.2006, 13: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

    Kommentar


    • #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
      Zuletzt geändert von deltacon; 08.03.2006, 13:33.

      Kommentar


      • #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

        Kommentar


        • #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...

          Kommentar

          Lädt...
          X